要将目录中所有文件中出现的所有字符串 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'
表达式将从左到右连续应用于每一行输入。