Sed流编辑器随记:修订间差异

来自三线的随记
(创建页面,内容为“sed -i "s@\#host_key_checking = False@host_key_checking = False@g" /etc/ansible/ansible.cfg @就是个分隔符 分类:Linux”)
 
无编辑摘要
第1行: 第1行:
sed -i "s@\#host_key_checking = False@host_key_checking = False@g" /etc/ansible/ansible.cfg
官方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