sed:主要用来将数据进行选取,替换,删除,新增的轻量级流编辑器。
sed [选项] '[动作]' 文件名
[选项]:
-n: 一般sed命令会把所有的数据都输出到屏幕,如果加入此选择,则把经过sed命令处理的行输出到屏幕;
-e: 允许对输入数据应用多条sed命令编辑;
-i: 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出;
-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法);
[动作]:
a\ :新增行, a 的后面可以是字串,而这些字串会在新的一行出现(目前的下一行)
c\ :取代行, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
d :删除行,因为是删除,所以 d 后面通常不接任何参数,直接删除地址表示的行;
i\ :插入行, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行;
s :替换,可以直接进行替换的工作,通常这个 s 的动作可以搭配正规表示法,例如 1,20s/old/new/g 一般是替换符合条件的字符串而不是整行;
案例:
1、只输出第二行内容
sed -n '2p' test.txt
2、删除第二行到第四行(只是删除输出)
sed '2,4d' test.txt
3、第二行后面新加一行AA
sed '2a AA' test.txt
4、第二行上面新加一行AA
sed '2i AA' test.txt
5、第四行输出文件字符替换88替换99
sed '4s/99/88/g' test.txt
6、改变源文件
sed -i '4s/99/88/g' test.txt