同时对同一文件运行多个 sed 命令

同时对同一文件运行多个 sed 命令

要将目录中所有文件中出现的所有字符串 foo 更改为 bar,我使用

sed -i -- 's/foo/bar/g' *

发现这里

但我也想将 NAME 更改为姓名等。我尝试过,

sed -i -- 's/foo/bar/g' * ; sed -i -- 's/NAME/name/g' *

这会创建新文件。如何让此命令重写原始文件,将 foo 替换为 bar,并将 NAME 替换为 name,然后会有其他替换,而不创建新文件?

答案1

sed您可以在一次调用中给出多个表达式:

sed -e 'expr' -e 'expr' -e ...

在你的情况下:

sed -e 's/foo/bar/g' -e 's/NAME/name/g'

表达式将从左到右连续应用于每一行输入。

相关内容