我需要用另一个字符串替换文件中的字符串,但在替换之前我需要将新字符串小写,然后再将其传递给sed
。
echo 'NEWSTRING' | tr '[:upper:]' '[:lower:]' | sed 's/foo/(my tr output in lowercase)/g' file.txt
我的问题是,我们如何将替换字符串作为参数传递?
答案 0 :(得分:4)
尝试使用xargs
,例如:
echo 'NEWSTRING' | tr '[:upper:]' '[:lower:]' | xargs -I '{}' sed 's/foo/{}/g' file.txt
答案 1 :(得分:4)
sed "s/foo/$(echo .. |tr ...)/g" file.txt
答案 2 :(得分:3)
这可能适合你(GNU sed):
sed 's/foo/\L'"NEWSTRING"'/'g file