파일의 문자열을 다른 문자열로 바꿔야하지만, 교체하기 전에 sed
으로 전달하기 전에 새 문자열을 소문자로 사용해야합니다.tr 출력을 sed로 리디렉션
echo 'NEWSTRING' | tr '[:upper:]' '[:lower:]' | sed 's/foo/(my tr output in lowercase)/g' file.txt
내 질문은 우리가 매개 변수로 대체 문자열을 전달할 수있는 방법인가?
파일의 문자열을 다른 문자열로 바꿔야하지만, 교체하기 전에 sed
으로 전달하기 전에 새 문자열을 소문자로 사용해야합니다.tr 출력을 sed로 리디렉션
echo 'NEWSTRING' | tr '[:upper:]' '[:lower:]' | sed 's/foo/(my tr output in lowercase)/g' file.txt
내 질문은 우리가 매개 변수로 대체 문자열을 전달할 수있는 방법인가?
sed "s/foo/$(echo .. |tr ...)/g" file.txt
하는 xargs
를 사용해보십시오, 예를 들면 :
echo 'NEWSTRING' | tr '[:upper:]' '[:lower:]' | xargs -I '{}' sed 's/foo/{}/g' file.txt
이것은 (GNU이 나오지도)을 위해 일 수 있습니다
sed 's/foo/\L'"NEWSTRING"'/'g file
나는 또한 파일을 대체 할 -i 옵션을 추가했다 . – PapelPincel
그래, 맞아, 나는 sed 명령을 생각하지 않았다. 다른 문제를 생각하고 있었다. –