【shell】强大的流编辑器sed用法
Date: 2018.7.4
1、参考:
http://man.linuxde.net/sed
https://www.cnblogs.com/ctaixw/p/5860221.html
2、sed用法总结
(1)命令格式
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
(2)选项
-e [scriptfile]或–expression= [scriptfile]:以选项中的指定的script来处理输入的文本文件;
-f [scriptfile]或–file=[scriptfile]:以选项中指定的script文件来处理输入的文本文件;
-h或–help:显示帮助;
-n或–quiet或——silent:仅显示script处理后的结果;
-V或–version:显示版本信息。
(3)sed命令
a\ 在当前行下面插入文本。(追加)
i\ 在当前行上面插入文本。
c\ 把选定的行改为新的文本。
d 删除,删除选择的行。
D 删除模板块的第一行。
s 替换指定字符
h 拷贝模板块的内容到内存中的缓冲区。
H 追加模板块的内容到内存中的缓冲区。
g 获得内存缓冲区的内容,并替代当前模板块中的文本。
G 获得内存缓冲区的内容,并追加到当前模板块文本的后面。
l 列表不能打印字符的清单。
n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
p 打印模板块的行。
P(大写) 打印模板块的第一行。
q 退出Sed。
b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
r file 从file中读行。
t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
w file 写并追加模板块到file末尾。
W file 写并追加模板块的第一行到file末尾。
! 表示后面的命令对所有没有被选定的行发生作用。
= 打印当前行号码。
# 把注释扩展到下一个换行符以前。
(4)替换功能
替换file文件中的字符串:
sed 's/book/books/' file
-n选项和p命令一起使用表示只打印那些发生替换的行:
sed -n 's/test/TEST/p' file
直接编辑文件选项-i,会匹配file文件中每一行的第一个book替换为books:
sed -i 's/book/books/g' file
全面替换标记: /g
sed 's/book/books/g' file
(5)删除操作
删除空白行:
sed '/^$/d' file
(6)其他功能命令:
r:读文件 w:写文件 \a:追加 i\:插入
sed的功能是很强大的,常用功能主要有上面这些,后续碰到新的功能再更新于此。
持续更新中。。。。。
本文为博主原创文章,未经博主允许不得转载。若允许转载,请注明来源https://www.cnblogs.com/SoaringLee/,否则保留追究法律责任的权利!
另外,本人提供付费咨询服务并长期承接各类毕设以及外包项目。联系QQ:2963033731。加Q备注:CNBLOG外包