Sed流编辑器随记
来自三线的随记
官方Docs(Redhat系sed): https://sed.sourceforge.io/
有如下文本 text.txt ,下述为基于此文件的使用sed进行操作的用法
L1 aabb L2 ccdd #L3 jjhh L4 host_key_checking = False
sed 默认为不修改原文件模式,需要修改生效自行在命令中添加 -i
参数
字符串替换
sed "s@#L4 host_key_checking = False@host_key_checking=True@g" test.txt
@就是个分隔符,可以根据实际情况替换为其他任意字符,末尾的g选项代表同行多次出现则多次替换
指定匹配行插入或追加
在L2行前插入文字: i 选项
sed "/L2/i 556677" test.txt
在L2行后插入文字: a 选项
sed "/L2/a 556677" test.txt
添加或解除注释
指定匹配行头添加注释
sed "s/^L2/#&/" test.txt
& 为特殊字符,意为替换为前面所匹配中的内容
An ampersand (&) appearing in the replacement will be replaced by the string matching the RE.
指定匹配行头取消注释
类似正则中子字符串匹配后引用的用法
sed "s/^#\(L3\)/#\1/" test.txt