sed学习札记

  sed使用起来,感觉跟awk也有点类似,也可以理解成匹配一个模式,然后执行相应的动作。但是这个模式可以是正则表达式匹配的模式,也可以是特定的某些行。但是匹配后可以执行的动作确实是sed的一大亮点,其几乎能完成一个文本编辑器所实现的功能。比如增加,删除等操作。其命令的字和vim的还是比较相似的。

d:用于删除

s:用于替换

选定行:例如‘1,5’ ‘/abc/,./fgh/’

e:执行多个命令,例如sed '-e s/a/A/g' -e 's/b/B/g'

r:从文件中读取内容,并增加到匹配的行后面

w:将所有匹配的内容,写入文件中

a\:追加文本到匹配的行的下一行

i\:插入文本到匹配的行的前一行

n:对匹配的文件的下一行进行操作,例如/match/{n;s/abc/def/g}

练习:

cat test_sed

wps_clip_image-363

1.把Steve的名字改成Jon

sed 's/Steve/Jon/g' test_sed

wps_clip_image-409

2.删除头三行

sed '1,3d' test_sed

wps_clip_image-437

3.显示5-10行

sed -n 1,5p test_sed

wps_clip_image-469

4.删除包含Lane的行.

sed -n /Lane/d test_sed

5.显示生日在November-December之间的行

sed -n '\#:1[12]/#p' test_sed

wps_clip_image-565

6.把三个星***添加到含Fred的行

sed  -n '/Fred/ s/$/***/p' test_sed  

wps_clip_image-624

7.用JOSE HAS RETIRED取代包含Jose的行

sed -n 's/Jose/JOSE HAS RETIRED/gp' test_sed

wps_clip_image-700

8.把Popeye的生日改1/14/46

sed -n '/Popeye/ s#[0-9]*/[0-9]*/[0-9]*#1/14/46#gp' test_sed

wps_clip_image-783

9.删除空白行

sed '/^$/d' test_sed

10.在20到30前加#号

sed '1,20 s/^/#&/g' test_sed

wps_clip_image-853

posted @ 2010-07-28 19:26  MR_H  阅读(291)  评论(0编辑  收藏  举报