我强烈建议使用sedor awk,这两个程序都使用正则表达式来选择和处理文本。
但是,您也可以使用 vim 来做到这一点:
Vim 有一个ex模式(又名命令行版本)可以解决这个问题,并且更容易在脚本中使用。从这个答案中获取解决方案:
您可以简单地在 bashscript 中包含以下内容:
ex $yourfile <<EOEX
:%s/$string_to_replace/$string_to_replace_it_with/g
:x
EOEX
Run Code Online (Sandbox Code Playgroud)
例如:
ex file.txt << EOEX
:%s/hello/world/g
:x
EOEX
Run Code Online (Sandbox Code Playgroud)
或者您可以使用该-c选项将ex命令传递给 vim。例如:
vim file.txt -c ':%s/hello/world/g' -c 'wq'
Run Code Online (Sandbox Code Playgroud)