语法:sed [-n][-e script][-f file] [文本文件]
参数说明:
-e/f:以选项中指定的script来处理输入的文本文件
-h:help
-n:仅显示script处理后的结果
动作说明:
-a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
-c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
-d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
-i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
-p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
-s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!
$ cat testfile #查看testfile 中的内容
HELLO LINUX!
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test
1、插入新的一行:
sed -e 4a\newLine testfile ##注意是反斜杠\
----------------------
HELLO LINUX!
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test
newline
----------------------
2、删除整行:
2.1删除第n行:sed ‘3d’ test
2.2删除第1-3行:sed ‘1,3d’ test
2.3删除匹配行:sed ‘/This/d’ test ##删除有This的行
3、列出整行:
3.1输出制定行:sed -n ‘1,3p’ test ##输出1-3行
3.2输出匹配行;##输出匹配This的行:
3.2.1 cat test | sed -n ‘/This/p’
3.2.2 sed -n ‘/This/p’ test
4、搜索并替换:
sed ‘s/This/That/g’ test ##搜索This,用That替换。g代表替代所有,没有g则只替代每一行的第一个。
5、直接修改文件内容(危险动作,慎用):
5.1替换:sed -i ‘s/This/That/g’ test ##用That替换This,并保存在源文件test中
5.2插入:sed -i 4a\newLine test ##第4行后面加如一行newLine
5.3删除:sed -i ‘/That/d’ test ##删除有That的行