Linux:sed
依照脚本的指令处理、编辑文本文件,一行一行
的更改
主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
语法和选项
语法
1
| sed [-hnV][-e<script>][-f<script文件>][文本文件]
|
选项
选项 |
含义 |
-e |
以指定的script来处理输入的文本文件。 |
-f |
以指定的script文件来处理输入的文本文件 |
-n |
仅显示script处理后的结果。 |
-i |
直接修改读取的文件内容,而不是由屏幕输出。 |
-r |
sed 的动作支持的是延伸型正则表达式的语法。(默认是基础正则表达式语法) |
动作说明:
动作 |
含义 |
a |
新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行) |
c |
取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! |
d |
删除,因为是删除啊,所以 d 后面通常不接任何咚咚; |
i |
插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); |
p |
打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行 |
s |
取代,可以直接进行取代的工作,通常这个 s 的动作可以搭配正规表示法! |
示例
1 2
| # 删除passwd的4-10行 cat -n passwd | sed '4,10d'
|

1 2
| # 在第四行后面添加啊啊啊 cat -n passwd | sed '4a 啊啊啊'
|

1 2
| # 以2-5取代2-5行 cat -n passwd | sed '2,5c 2-5'
|

1 2
| # 显示2-7行 nl passwd | sed -n '2,7p'
|

1 2
| # 修改passwd1文件中的root为ROOT,最后的g为全部更改 sed -i 's/root/ROOT/g' passwd1
|
