sed在行首添加注释
匹配1111的行 并在行首添加# 注释
sed -i '/1111/s/^/#/' /root/test.sh
匹配1111的行 并在行尾添加 #
sed -i '/1111/s/$/#/' /root/test.sh
匹配1111的行并删除首行字符#
sed -i '/1111/s/^#//' /root/test.sh
^ 代表行首
$ 代表行尾
也有这一种写法
sed -i '/1111/s/^/#&/' /root/test.sh
这里和上面的删除操作唯一的不同就在于s/^/#&/部分
。其中,^
字符匹配行首,#
字符是一般字符表示添加该字符,&
字符是我们这里需要重点关心的。在上面的关于s/regexp/replacement/
命令描述时有以下字段:
The replacement may contain the special character & to refer to that portion of the pattern space which matched, and the special escapes \1 through \9 to refer to the corresponding matching sub-expressions in the regexp.
这里提到了两种特殊字符:
&:refer to that portion of the pattern space which matched
,即表示前面的正则表达式匹配出来的部分,而在这里指的就是行首位置。实际上在此处我们完全可以不要&
字符,也是可以完成任务的。