参数说明:
-e 以指定的script来处理输入的文本文件
-f 以指定的script文件来处理输入的文本文件
-h 显示帮助
-n 仅显示script处理后的结果
-V 显示版本信息
-v 反选
动作说明:
a 新增,后面跟字符串,插入在指定行的下一行
c 取代,后面跟字符串,可以取代n1,n2之间的行
d 删除
i 插入,后面跟字符串,插入在指定行的上一行
p 打印
s 取代
1.添加行
sed -e 4a ewline 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)/321/'
替换前
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