Sed流编辑器随记:修订间差异
来自三线的随记
(创建页面,内容为“sed -i "s@\#host_key_checking = False@host_key_checking = False@g" /etc/ansible/ansible.cfg @就是个分隔符 分类:Linux”) |
小无编辑摘要 |
||
第1行: | 第1行: | ||
官方Docs(Redhat系sed): https://sed.sourceforge.io/ | |||
有如下文本 text.txt ,下述为基于此文件的使用sed进行操作的用法 | |||
L1 aabb | |||
L2 ccdd | |||
#L3 jjhh | |||
L4 host_key_checking = False | |||
sed 默认为不修改原文件模式,需要修改生效自行在命令中添加 <code>-i</code> 参数 | |||
=== 字符串替换 === | |||
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 | |||
& 为特殊字符,意为替换为前面所匹配中的内容<blockquote>An ampersand ('''&''') appearing in the ''replacement'' will be replaced by the string matching the RE.</blockquote> | |||
==== 指定匹配行头取消注释 ==== | |||
类似正则中子字符串匹配后引用的用法 | |||
sed "s/^#\(L3\)/#\1/" test.txt | |||
[[分类:Linux]] | [[分类:Linux]] |
2024年7月22日 (一) 15:23的版本
官方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