您的位置:首页 > 运维架构 > Linux

Vbird的Linux私房菜学习笔记之正则表达式-sed

2013-05-21 17:01 573 查看
sed是用来处理stdin输入的资料,能够对资料进行取代、插入、删除、字符串替换。
usage:sed [-neifr] [动作]
选项与参数:
-n:使用安静模式,只有sed处理过的资料会被现实在屏幕上;
-e:直接在命令行模式上进行sed的动作编辑;
-f:将sed的动作写进文件,然后使用sed -f filename来执行sed的动作;
-r:设置sed支持扩展正则表达式,预设sed只能支持标准正则表达式;
-i:直接修改文件内容,不显示在屏幕上;
[动作]:[n1[,n2]]function
n1,n2表示动作执行的行数,如sed '2,5d' filename 删除2至5行
function:
a:新增,后面接要新增的字符串如sed '5a hello' filename,在第5行后新增一行hello,如果不指定行
数,则会在每一行后都新增一行;
c:取代,后面接取代的字符串,如 sed '2,5c replace nu 2-5' filename;将2-5行取代为replace nu 2-
5
p:列印,将指定的资料显示在屏幕上,如:sed '2,8p' filename;将2-8行在屏幕上显示出来,通
要与-n配合使用;
d:删除,删除指定的行,如:sed '2,4d' filename; 删除2到4行
i:插入,后面接要插入的字符串,如:sed '5i hello' filename;在第5行之前插入一行hello
s:取代,取代特定的字符串,不是正行取代与c的区别,可使用正则表达式;
示例:
sed '2,$d' filename;删除第2行至尾行,符号$表示尾行;
sed '/^$/d' filename;删除空行;
sed -n '/hello/p' filename;将包含hello的行显示在屏幕上,相当于grep 'hello' filename;
hello可用正则表达式替代,如:sed -n '/go\{2,\}/p' filename;
sed 's/hello/hi/g' filename;将文件中的hello替换成hi,关键字为 sed 's/..../..../g';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: