Linux/Bash:注释与模式匹配的每一行

Linux/Bash:注释与模式匹配的每一行

sed对我来说至少是陌生的。我想遍历 C 项目树并注释掉调用该函数的每一行LogMsg()。实现以下目标:

foreach: line within *.c
  if: line contains "LogMsg"
    prepend "//"

大概如此。此外,我想看看我是否能实现相反的效果,尽管我认为这可能更困难。

我觉得sed这是适合这项工作的工具,但我不是批量文本文件编辑方面的专家。有什么帮助吗?

答案1

使用的命令是:

 sed '/LogMsg/ s?^?//?' filename  new_filename

它定位文件中的行文件名,包含日志信息,并在行首替换(^),即双斜线。问号用作分隔符,而不是更常见的斜线,以防止与要替换的文本混淆。输出将重定向到文件的新版本,而不是标准输出。

相关内容