格式:sed <参数> 's###g' Filename


    -g  与s联合使用时,表示对当前行全局匹配替换(与下一个g意义不同)

    -p  打印匹配行

    -s  常说的查找并替换,用一个字符串替换成另一个


    -e  允许多项编辑

    -n  取消默认输出,默认替换后显示修改后文件内容

    -i   真实修改文件,此参数会直接修改文件内容


实验内容:

[root@localhost ~]# cat sed

22 22 33

44 55 66

77 88 99


1、替换22为55

[root@localhost ~]# cat sed|sed 's#22#55#g'
55 55 33
44 55 66
77 88 99

2、添加注释#

[root@localhost ~]# cat sed|sed -e 's#^#\##g'   ##没有限定添加注释的具体范围就进行全部添加,这里#需要转义“\”
#22 22 33
#44 55 66
#77 88 99
[root@localhost ~]# cat sed|sed -e '1,2{s#^#\##g}'    ##这里限定为只在1-2行添加注释#,这里#需要转义“\”
#22 22 33
#44 55 66
77 88 99

3、在第2行下插入hello

[root@localhost ~]# cat sed|sed '1a hello'
22 22 33
hello
44 55 66
77 88 99

4、仅替换1、2行的55为99(这里的55是例题的中间22和)

[root@localhost ~]# cat sed|sed '1,2{s#55#99#g}'
22 99 33
44 99 66
77 55 99

5、取值in单词(后项引用)

sed\( \)的功能可以记住正则表达式的一部分,其中,\1为第一个记住的模式即第一个小括号中的匹配内容,\2第二记住的模式,即第二个小括号中的匹配内容,sed最多可以记住9个。

实验内容: I from in China.

[root@localhost ~]# cat 2|sed 's#^.* \([a-z]*\) C.*$#\1#g'
in
[root@localhost ~]# cat 2|sed 's#^.* \([a-z].*\) [A-Z].*$#\1#g'
in
[root@localhost ~]# cat 2|sed 's#^.* \([a-z]*\) [A-Z].*$#\1#g'
in

!!!关于sed的更多详细用法,参考老男孩老师的解析