sed简单用法

2018/06/13 17:06
阅读数 13

参数说明:

-e 以指定的script来处理输入的文本文件

-f 以指定的script文件来处理输入的文本文件

-h 显示帮助

-n 仅显示script处理后的结果

-V 显示版本信息

-v 反选

动作说明:

a 新增,后面跟字符串,插入在指定行的下一行

c 取代,后面跟字符串,可以取代n1,n2之间的行

d 删除

i 插入,后面跟字符串,插入在指定行的上一行

p 打印

s 取代

1.添加行

  sed -e 4a\newline text.file

  sed '3a hello wold' text.txt

  sed ''

1.打印某行 sed -n 'n'p filename

2.打印多行 sed -n '1,$'p filename

3.打印包含某个字符串的行 sed -n '/root/'p text.txt

  特殊字符^ $ . *也能在sed中使用

  sed -n '/^i/'p text.txt 打印以i开头的行

  sed -n '/in$/'p text.txt 打印以in结尾的行

  sed -n '/r..o/'p text.txt 打印包含r..o的行。中间2个为任意字符

  sed -n '/ooo*/'p text.txt 打印oo ooo...的行。最少匹配oo

4.实现多个行为 -e 

  sed -e '1'p -e '/111/'p -n text.txt

5.删除某行或这多行 d删除

  sed '1'd text.txt

  sed '1,3'd text.txt

  sed '2,$'d text.txt

  sed '/oot/' text.txt

6.替换字符串或字符

  s替换   g 全局替换,不加只替换每行的第一个

  除了/,还可以使用其他的特殊字符如# @

  sed '2,4s/ot/to/g' text.txt 将第2行到第4行的ot替换为to

  sed 's#ot#to#g' text.txt 

  sed 's/[0-9]//g' text.txt 删除所有的数字

  sed 's/[a-zA-Z]//g' text.txt 删除所有的字母

  sed 's/[0-9a-zA-Z]//g' text.txt 删除所有的数字和字母

7.调换2个字符的位置

  head -n 10 text.txt|sed 's/\(root\)\(.*\)\(rcu_gp_kth\)/\3\2\1/'

  替换前

 

8.增加字符串

  sed 's/^.*$/123&/' text.txt|head -n 10 在每一行的前面加上123

 

  sed 's/^.*$/&123/' text2.txt

9.直接替换

sed -i 's/:/#/g' text.txt

mac下直接替换一直报错,解决方法:

1. sed -ig 's/456/hello/g' text2.txt

2. sed -i ''  's/hello/456/g' text2.txt

3. 保存到一个文件

sed 's/456/hello/g' text2.txt > text3.txt 

参考:http://blog.sina.com.cn/s/blog_5fde60890101ic7r.html

 

 

 

 

 

 

 

 

 

 

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部