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' 』癿啦,那个$字号『$ 』代表最后一行!