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

7.4

时间:2018-07-03 23:48:41      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:执行   alt   技术分享   img   文件内容   inf   分隔符   技术   查找   

1、sed

  sed:查找和替换

  sed ‘/root/‘p test.txt,查找并打印包含root 的行,在显示时会显示文件所有内容,并将包含root的行打印两次

技术分享图片

  sed -n ‘/root/‘p test.txt:查找且只显示包含root的行

技术分享图片

  同时,sed也支持. * 等特殊字符

技术分享图片

  sed也支持+,在使用+时,需要使用-r进行脱译

技术分享图片

  sed也支持{}、|等

技术分享图片

  sed -n ‘2‘p test.txt:打印第二行

技术分享图片

  sed -n ‘2,5‘p test.txt:打印第二到五行

技术分享图片

  sed -n ‘25,$‘ test.txt:打印第25到末行

技术分享图片

  sed -e ‘1‘p -e‘/bus/‘p -n test.txt:其中-e选项表示要执行多个条件,打印第一行,然后查找并打印包含bus的行

技术分享图片

  sed -n ‘/bus/‘Ip test.txt:查找bus,且不区分大小写

技术分享图片

  使用sed删除:

   sed ‘1,10’d test.txt:删除文件的前10行

技术分享图片

  但上述删除方法并未真正将文件中内容进行删除,只是将前10不打印出来:

技术分享图片

  使用-i选项可以删除文件内容,sed -i ‘1,25’d test.txt:删除文件的前25行,查看文件行数,只剩下5行

技术分享图片

  也可以删除包含指定内容的行,sed -i ‘/user2/‘d test.txt,删除包含user2的行

技术分享图片

  

  使用sed替换

  sed ‘1,10s/root/toor/g‘ test.txt:将文件前10行中的root,替换成toor,其中s表示替换,g表示全局,执行此命令时会打印文件的全部内容,但是只有前10行进行替换

技术分享图片

  进行替换时,也可以使用正则表达式,sed -r ‘1,10s/ro+/r/g‘ test.txt

技术分享图片

  head test.txt |sed -r ‘s/([^:]+):(.*):([^:]+)/\3:\2:\1‘   将文件前10行中的第一段和最后一段进行替换,其中前面用括号括起来的内容在后面中用\表示出来,\1、\2、\3分别表示第一至三个括号中的内容

技术分享图片

  如果替换的内容中包含有/,需要使用\进行脱译,head test.txt |sed ‘s/\/root/123/g‘,将文件前10行中的/root替换成123

技术分享图片

  也可以修改分隔符,修改成@就可以执行

技术分享图片

  

  使用sed删除指定的字符

  例如删除文件内的所有英文字符,sed ‘s/[a-zA-Z]//g‘,在删除时其实就是将指定的字符替换为空字符

技术分享图片

 

  使用sed在所有行前面增加字符串

  sed -r ‘s/(.*)/aaa:&/’在文件所有行前增加aaa:,其中&表示前面的()

技术分享图片

 

7.4

标签:执行   alt   技术分享   img   文件内容   inf   分隔符   技术   查找   

原文地址:https://www.cnblogs.com/w494129131/p/9256868.html

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