有没有什么简单的方法可以在很多文件中更改一行?

Oli*_*ons 1 shell text-processing

我正在尝试使用 PHP CodeSniffer,结果如下:

-----------------------------------------------------------------
A TOTAL OF 3008 ERROR(S) AND 380 WARNING(S) WERE FOUND IN 46 FILE(S)
-----------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

在一行中有很多小的更改(例如:更改@author Olivier Pons@author Olivier Pons <olivier.pons@gmail.com>),我想通过 shell 脚本进行,或者更好的是通过命令行进行,并且(如果可能)使用正则表达式。

您对这个问题有什么想法/建议/工作解决方案吗?

谢谢!

(注意:我已经读过这个,但它对我没有帮助)

Mic*_*zek 7

我不确定在您提供的链接中什么对您没有帮助,但sed似乎是正确的工具。它支持正则表达式替换,如果你传递它-i,它将就地更改文件:

$ sed -i 's/@author Olivier Pons/& <olivier.pons@gmail.com>/g' /path/to/your/file /path/to/another/file ...
Run Code Online (Sandbox Code Playgroud)

&替换中的 是一个简写,意思是“包括整个匹配”)

  • 包裹在 `find /where/your/files/live -type f -name '*.php' -exec sed -is/see/above {} \;` 应该处理所有这些,我想 (2认同)