2

我需要用另一个字符串替换文件中的一个字符串,但在替换之前,我需要将新字符串小写,然后再将其传递给sed.

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

我的问题是,我们如何将替换字符串作为参数传递?

4

3 回答 3

4
sed "s/foo/$(echo .. |tr ...)/g" file.txt
于 2012-10-12T09:04:39.217 回答
4

尝试使用xargs,例如:

echo 'NEWSTRING' | tr '[:upper:]' '[:lower:]' | xargs -I '{}' sed 's/foo/{}/g' file.txt
于 2012-10-12T09:03:36.880 回答
3

这可能对您有用(GNU sed):

sed 's/foo/\L'"NEWSTRING"'/'g file
于 2012-10-13T06:14:14.667 回答