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
◑ 常用示例
• 文本替换
echo 'https://zzk.cnblogs.com/my/s/blogpost-p' | sed "s@https://zzk.cnblogs.com/@http://yong.com/@g"
http://yong.com/my/s/blogpost-p
• 过滤日志
sed -n '/2019-07-24/,/2019-07-25/p' my.log sed -n '/2019-07-25 16:51:23,699/,/2019-07-25 16:51:38,791/p' my.log
[2019-07-25 16:51:23,699] - INFO - phone-f = None
[2019-07-25 16:51:23,699] - INFO - resz = [(u'16115505087', u'Error code,300')]
[2019-07-25 16:51:23,714] - INFO - phoneNum = 18214792644
[2019-07-25 16:51:23,717] - INFO - data = 18214792644
[2019-07-25 16:51:23,717] - INFO - resz = [(u'18214792644', 'xe5xaex89xe5xbexbd,xe6xb1xa0xe5xb7x9e')]
[2019-07-25 16:51:34,547] - INFO - resz = <pymysql.connections.Connection object at 0x7f55419e4b50>
[2019-07-25 16:51:38,791] - INFO - resz = <pymysql.connections.Connection object at 0x7f03c0907b50>