Sha*_*e G 0 sed string replace
要将字符串 foo 的所有出现更改为 bar 在我使用的目录中的所有文件中
sed -i -- 's/foo/bar/g' *
Run Code Online (Sandbox Code Playgroud)
发现这里
但我也想将 NAME 更改为 name 等。我试过了,
sed -i -- 's/foo/bar/g' * ; sed -i -- 's/NAME/name/g' *
这会创建新文件。如何使用此命令重写原始文件,将 foo 替换为 bar 并将 NAME 替换为 name,然后再进行其他替换,而不创建新文件?
您可以sed在一次调用中给出多个表达式:
sed -e 'expr' -e 'expr' -e ...
Run Code Online (Sandbox Code Playgroud)
在你的情况下:
sed -e 's/foo/bar/g' -e 's/NAME/name/g'
Run Code Online (Sandbox Code Playgroud)
表达式将从左到右依次应用于每一行输入。