grep/sed/awk被称为linux的“三剑客”linux
grep更适合单纯的查找或匹配文本;正则表达式
sed更适合编辑匹配到的文本;shell
awk更适合格式化文本,对文本进行较复杂各式处理;json
--color=auto 或者 --color:表示对匹配到的文本着色显示编辑器
-i:在搜索的时候忽略大小写spa
-n:显示结果所在行号.net
-c:统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数code
-o:只显示符合条件的字符串,可是不整行显示,每一个符合条件的字符串单独显示一行blog
-v:输出不带关键字的行(反向查询,反向匹配)ip
-w:匹配整个单词,若是是字符串中包含这个单词,则不做匹配
-Ax:在输出的时候包含结果所在行以后的指定行数,这里指以后的x行,A:after
-Bx:在输出的时候包含结果所在行以前的指定行数,这里指以前的x行,B:before
-Cx:在输出的时候包含结果所在行以前和以后的指定行数,这里指以前和以后的x行,C:context
-e:实现多个选项的匹配,逻辑or关系
-q:静默模式,不输出任何信息,当咱们只关心有没有匹配到,却不关心匹配到什么内容时,咱们能够使用此命令,而后,使用"echo $?"查看是否匹配到,0表示匹配到,1表示没有匹配到。
-P:表示使用兼容perl的正则引擎。
-E:使用扩展正则表达式,而不是基本正则表达式,在使用"-E"选项时,至关于使用egrep。
-m 1 匹配到首行记录后中止
http://www.zsythink.net/archives/1733/
sed 是Stream Editor(字符流编辑器)的缩写,简称流编辑器。
eg :sed -i "" 's/$oldday/$today/g' ${json_path}
shell中若是有$这样的特殊字符,单引号要换成双引号。
eg: sed -i "s/$oldday/$today/g" ${json_path}
原来sed -i须要带一个字符串做为备份源文件的文件名称,若是这个字符串长度为0,则不备份。
https://blog.csdn.net/fdipzone/article/details/51253955
awk [options] '{pattern + action}' {filenames}