使用sed命令行格式为:[root@localhost ~]# sed [-nefri] command 输入文本

常用选项:

  • -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
  • -e∶直接在指令列模式上进行 sed 的动作编辑;
  • -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
  • -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
  • -i∶直接修改读取的档案内容,而不是由萤幕输出。

常用命令:

  • a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
  • c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
  • i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
  • s ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

举例:(假设我们有一文件名为ab)

 1删除某行
 2[root@localhost ruby] # sed '1d' ab #删除第一行
 3[root@localhost ruby] # sed 'd' ab #删除最后一行
 4[root@localhost ruby] # sed '1,2d' ab #删除第一行到第二行
 5[root@localhost ruby] # sed '2,d' ab #删除第二行到最后一行
 6显示某行
 7. [root@localhost ruby] # sed -n '1p' ab #显示第一行
 8[root@localhost ruby] # sed -n 'p' ab #显示最后一行
 9[root@localhost ruby] # sed -n '1,2p' ab #显示第一行到第二行
10[root@localhost ruby] # sed -n '2,p' ab #显示第二行到最后一行
11使用模式进行查询
12[root@localhost ruby] # sed -n '/ruby/p' ab #查询包括关键字ruby所在所有行
13[root@localhost ruby] # sed -n '//p' ab #查询包括关键字¥所在所有行,使用反斜线屏蔽特殊含义
14增加一行或多行字符串
15[root@localhost ruby]# cat ab
16Hello!
17ruby is me,welcome to my blog.
18end
19[root@localhost ruby] # sed '1a drink tea' ab #第一行后增加字符串"drink tea"
20Hello!
21drink tea
22ruby is me,welcome to my blog.
23end
24[root@localhost ruby] # sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea"
25Hello!
26drink tea
27ruby is me,welcome to my blog.
28drink tea
29end
30drink tea
31[root@localhost ruby] # sed '1a drink teanor coffee' ab #第一行后增加多行,使用换行符n
32Hello!
33drink tea
34or coffee
35ruby is me,welcome to my blog.
36end
37代替一行或多行
38[root@localhost ruby] # sed '1c Hi' ab #第一行代替为Hi
39Hi
40ruby is me,welcome to my blog.
41end
42[root@localhost ruby] # sed '1,2c Hi' ab #第一行到第二行代替为Hi
43Hi
44end
45插入
46[root@localhost ruby] # sed -i 'a bye' ab #在文件ab中最后一行直接输入"bye"
47[root@localhost ruby]# cat ab
48Hello!
49ruby is me,welcome to my blog.
50end
51bye