2012-10-12 5 views
2

파일의 문자열을 다른 문자열로 바꿔야하지만, 교체하기 전에 sed으로 전달하기 전에 새 문자열을 소문자로 사용해야합니다.tr 출력을 sed로 리디렉션

echo 'NEWSTRING' | tr '[:upper:]' '[:lower:]' | sed 's/foo/(my tr output in lowercase)/g' file.txt

내 질문은 우리가 매개 변수로 대체 문자열을 전달할 수있는 방법인가?

답변

4
sed "s/foo/$(echo .. |tr ...)/g" file.txt 
+0

나는 또한 파일을 대체 할 -i 옵션을 추가했다 . – PapelPincel

+0

그래, 맞아, 나는 sed 명령을 생각하지 않았다. 다른 문제를 생각하고 있었다. –

4

하는 xargs를 사용해보십시오, 예를 들면 :

echo 'NEWSTRING' | tr '[:upper:]' '[:lower:]' | xargs -I '{}' sed 's/foo/{}/g' file.txt 
3

이것은 (GNU이 나오지도)을 위해 일 수 있습니다

sed 's/foo/\L'"NEWSTRING"'/'g file 
관련 문제