sed 是 stream editor 的缩写,流编辑器,在Linux命令行执行该命令,以行为单位对指定文本进行操作。
一、sed命令格式
sed 【-参数(可选)】 '命令1;命令2;...' 要操作的文件
注意:
- 命令要用单引号(’’)括起来,
- 多个命令时间用分号(;)分隔
- 参数为可选,没有参数的时候,sed直接将命令的结果输出到屏幕,并不会对文件本身进行任何更改
1.1 【参数】说明
sed命令默认是对文件内容操作之后直接将结果输出到屏幕,不会对文件进行任何更改,
但是可以通过一些参数文件本身进行操作,如下:
-i 直接操作文件
例1:使用sed命令删除指定文件中匹配到的行
格式:
sed -i '/要匹配的字符串/d' 文件
例如:删除scanf.c文件中匹配到AAA和BBB的行
sed -i '/AAA/d;/BBB/d' scanf.c
1. 2 【命令动作】说明
命令中可以又很多动作,比如增删改之类。
以下摘自【菜鸟教程(https://www.runoob.com/linux/linux-comm-sed.html)】
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
例2:testfile文件4行之后插入一行并写入newLine,输出到屏幕
sed -e 4a\newLine testfile