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

Linux指令_文件处理工具sed

2015-10-28 21:38 363 查看
sed (Stream editor)本身是一个管道命令,用于过滤、新增、选取和替换文本。

一般使用格式如下:

sed  [-nefri]  [动作]

参数:

-n:使用安静(silent)模式。在一般的sed用法中,所有来自STDIN的数据一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed特殊处理的那一行(或者动作)才会被
列出来;

-e:直接在命令行模式上进行sed的动作编辑;

-f:直接将sed的动作写在一个文件内,-f filename 则可以执行filename内的sed动作;

-r:sed的动作支持的是扩展型正则表达式的语言(默认是基础正则表达式语法)

-i:直接修改读取的文件内容,而不是由屏幕输出。

动作说明:'n1,n2[function] '

n1,n2:一般代表选择进行动作的行数,例如我的动作需要在10到20行之间进行的,则“10,20[function]”

function参数说明:

a:新增,a的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行);

c:替换,c的后面可以接字符串,这些字符串可以替换n1,n2之间的行;

d:删除,因为是删除,所以d后面通常不接任何参数;

 i:插入,i的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行);

p:打印,也就是将某个选择的数据打印出来,通常p会与参数sed -n一起运行;

s:替换,可以直接进行替换的工作。通常这个s的动作可以搭配正则表达式!例如1,20/old string/new string/g

示例:





如果只要删除第 2 行,可以使用『nl /etc/passwd | sed '2d' 』达成, 若是要删除第 3 到最后一行,则是『nl /etc/passwd | sed '3,$d' 』癿啦,那个$字号『$ 』代表最后一行!

示例(直接操作文件):

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sed 数据处理