sed介绍
Linux sed 命令是利用脚本来处理文本文件。
sed 可依照脚本的指令来处理、编辑文本文件。
Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
语法
sed [-hnV][-e<script>][-f<script文件>][文本文件]
参数说明:
-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或--help 显示帮助。
-n或--quiet或--silent 仅显示script处理后的结果。
-V或--version 显示版本信息。
动作说明:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
testfile 文件
cat testfile
dd
d
abc
testa
sed示例
-a 新增
sed "2 a\\
testabc
" testfile # 执行命令结束,以下为执行后的文件
dda
d
testabc
abc
testa
-d 删除
# 删除前
cat testfile
dda
d
testabc
abc
testa
# 删除第三行
sed "3,3d" testfile
# 删除后
cat testfile
dda
d
abc
testa
# 删除从第3开始到最后一行
nl testfile | sed '3,$d'
1 dda
2 d
-s 数据的搜寻并替换
# 仅替换匹配到每行第一个元素
nl testfile | sed 's/d/123/' testfile
123da
123
abc
testa
# 替换匹配到每行所有元素
nl testfile | sed 's/d/123/g' testfile
123123a
123
abc
testa