工具: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
现在您只需将它们放在一起即可。