码迷,mamicode.com
首页 > 其他好文 > 详细

9.4 sed(上);9.5 sed(下)

时间:2018-01-16 18:19:50      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:style   大小写   ros   bin   区分大小写   mkdir   一段   大小   sed -e   

9.4 sed(上)

1. 创建目录                  

[root@hao-01 ~]#mkdir sed

2. 进入目录                    

[root@hao-01 ~]#cd sed

3. 拷贝文件到当前目录并重命名  

[root@hao-01 sed]#cp /etc/passwd   test.txt

匹配指定行:

1. 匹配 含有关键词(root)行:sed -n '/关键词/'p 文件名

[root@hao-01 sed]#sed -n '/root/'p test.txt

2. [root@hao-01 sed]#sed -n '/r.t/'p test.txt

3. [root@hao-01 sed]#sed -n '/r*t/'p test.txt

4. [root@hao-01 sed]#sed -nr '/o+t/'p test.txt

5. 匹配 含有多次关键词: sed -nr '/匹配关键词{匹配次数}/'p 文件名

[root@hao-01 sed]#sed -nr '/o{2}/'p test.txt

6. 匹配 关键词1或者匹配关键词2或者匹配关键词3

sed -nr '/匹配关键词|匹配关键词|匹配关键词/'p 文件名

[root@hao-01 sed]#sed -nr '/root|hao|sbin/'p test.txt

打印指定行:

7. 打印指定行2sed -nr '指定行'p 文件名

[root@hao-01 sed]#sed -nr '2'p test.txt

8. 打印指定范围行sed -nr '指定范围行'p 文件名

[root@hao-01 sed]#sed -nr '2,5'p test.txt

9. 打印指定行末行($):sed -nr '指定行,$'p 文件名

[root@hao-01 sed]#sed -nr '2,$'p test.txt

10. 打印全部行sed -nr '1,$'p 文件名

[root@hao-01 sed]#sed -nr '1,$'p test.txt

11. 打印指定行,再匹配出含有关键词行,再匹配出含有关键词行

sed -e '指定行'p -e '/匹配关键词/'p -e '/匹配关键词/'p -n test.txt

[root@hao-01 sed]#sed -e '1'p -e '/111/'p -e '/hao/'p -n test.txt

9.5 sed(下)

1. 匹配 含有关键词(root)行,但不区分大小写:

sed -n '/关键词/'Ip 文件名

[root@hao-01 sed]#sed -n '/root/'Ip test.txt

技术分享图片2. 删除打印的范围行,显示剩余行(生效在屏幕):

sed '行范围'd test.txt

[root@hao-01 sed]#sed '1,10'd test.txt

3. 删除文件中的范围行(生效在文件):

sed -i '行范围'd test.txt

[root@hao-01 sed]#sed -i '1,10'd test.txt

查看文件行数:wc -l 文件名

4. 删除文件中含有关键词的行(生效在文件):

sed -i '/关键词/'d 文件名

[root@hao-01 sed]#sed -i '/hao/'d test.txt

5. 查找指定行,并全局替换 打印到屏幕:

sed '指定行范围s/关键词/替换关键词/g' test.txt

[root@hao-01 sed]#sed '1,10s/root/toor/g' test.txt

6. 查找指定行,并用正则表达式+号进行了全局替换  后面可以用管道符:

[root@hao-01 sed]#sed -r '1,10s/ro+/r/g' test.txt |head

7. 把前面命令的输出结果,用sed 查找以冒号分割的段,每行第一段和最后一段相互替换

[root@hao-01 sed]#head test.txt |sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:1/'

8. 查找替换:关键词含有/这个分隔符,

分隔符可以用@或#替换,如果要替换的关键词包含斜杠就用@代替斜杠即可

[root@hao-01 sed]#head test.txt |sed 's@/hao/hao@root@g'

9. 替换 字母范围为空

head 文件名 |sed 's/[小写大写字母替换掉的范围]//g'

[root@hao-01 sed]#head test.txt |sed 's/[a-zA-Z]//g'

10. 所有行行首添加固定的字符串

head 文件名 |sed -r 's/(.*)/添加的字符串:&/'

[root@hao-01 sed]#head test.txt |sed -r 's/(.*)/hhh:&/'


9.4 sed(上);9.5 sed(下)

标签:style   大小写   ros   bin   区分大小写   mkdir   一段   大小   sed -e   

原文地址:http://blog.51cto.com/zhuneianxiang/2061641

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!