1、sed 概述
Linux sed 命令是利用脚本来处理文本文件。
sed 可依照脚本的指令来处理、编辑文本文件。
sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
2、sed的基本语法
sed [-hnV][-e<script>][-f<script文件>][文本文件]
2.1、sed的参数
参数 | 说明 |
---|---|
-e script 或–expression=script | 以选项中指定的script来处理输入的文本文件 |
-f script文件 或–file=script文件 | 以选项中指定的script文件来处理输入的文本文件 |
-h或–help | 显示帮助 |
-n或–quiet或–silent | 仅显示script处理后的结果 |
-V或–version | 显示版本信息 |
2.2、sed的动作
动作 | 说明 |
---|---|
a :新增 | a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ |
c :取代 | c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行 |
d :删除 | 因为是删除啊,所以 d 后面通常不接任何咚咚 |
i :插入 | i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行) |
p :打印 | 亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行 |
i :插入 | i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行) |
p :打印 | 亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行 |
s :取代 | 可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法,例如 1,20s/old/new/g |
在testfile文件的第四行后添加一行,并将结果输出到标准输出,在命令行提示符下输入如下命令: |
sed -e 4a\newLine testfile
2.3、sed基础实例
1、删除第 2 行
sed '2d' filename
2、将第 2~5 行删除
sed '2,5d' filename
3、删除第3 到最后一行
sed '3,$d' filename
4、在第二行后(即第三行)加上drink tea
sed '2a drink tea' filename
5、在第二行前加上drink tea
sed '2i drink tea' filename
6、第2-5行的内容取代成为No 2-5 number
sed '2,5c No 2-5 number' filename
7、仅列出第 5-7 行
sed -n '5,7p' filename
8、搜索有root关键字的行
sed '/root/p' filename
sed -n '/root/p' filename
9、删除所有包含root的行
sed '/root/d filename
10、找到root对应的行
找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell,再输出这行。最后的q是退出。
sed -n '/root/{s/bash/blueshell/;p;q}' filename
11、可以用行为单位进行部分数据的搜寻并取代
除了整行的处理模式之外, sed 还可以用行为单位进行部分数据的搜寻并取代。基本上 sed 的搜寻与替代的与 vi 相当的类似!他有点像这样:
sed 's/要被取代的字串/新的字串/g' filename
12、一条sed命令,删除文件第三行到末尾的数据,并把bash替换为blueshell。-e表示多点编辑
sed -e '3,$d' -e 's/bash/blueshell/' filename