sed 插入、复制和更改、附加一行匹配的字符串

sed 插入、复制和更改、附加一行匹配的字符串

工具:sed

需求:我想让 sed 找到具有匹配字符串的行

. Copy the line and comment one line
. Modify  the other line      
. Insert a string above the two lines.

示例:文件内容:

*  soft nproc  1024
root soft nproc unlimited

任务:搜索字符串 1024 并对其进行注释,将 1024 替换为 2048,然后在其上方添加一个字符串。

修改后的文件内容:

#######RAJASEKHAR#####Modified for DSD######
#* soft nproc 1024
* soft nproc  2048
root soft nproc unlimited

答案1

尝试

sed -n '$i\
#######RAJASEKHAR#####Modified for DSD######\
#* soft nproc 1024\
* soft nproc  2048\
root soft nproc unlimited' old_file > new_file

答案2

我假设你已经阅读了 sed 手册以及网络上关于该主题的所有资料好几遍了,只是现在你看不到对你来说重要的项目。让我们强调它们

  • 首先,正则表达式(至少是最简单的),即 regexp
  • s/正则表达式/字符串/
  • \(subregexp\) 位于正则表达式中
  • & 在 s/.../.../ 的字符串元素内
  • s/.../.../ 的字符串元素内
  • s/.../.../ 的字符串元素内有 \1

现在您只需将它们放在一起即可。

相关内容