grep常用于文本搜索。通过自定义的模式(pattern),筛选出使用者需要的文本内容。除了有grep,还有egrep和fgrep。其中egrep = grep –E,而fgrep则是不支持正则表达式。
grep语法:grep [option] pattern [file]
常用option如下:-i:忽略字符的大小
-n:显示匹配的行号
-c:统计匹配的行数
-o:只显示匹配到的内容
-q:静默模式,不显示出任何信息
-e:实现多个选项的or的关系
-w:匹配整个单词
-v:显示除pattern外的内容
-F:相当于fgrep
-E:相当于egrep
Linux中使用grep正则提取字符串echooffice365|grep-P'd+'-o
find.-name"*.txt"|xargsgrep-P'regex'-o
xargs会将find结果作为grep的输入,防止find结果过多无法处理
-P参数表明要应用正则表达式
-o表示只输出匹配的字符串,这样我们就可以把正则匹配到的结果拿到了。
Linux、Mac OS中使用sed正则提取字符串
Mac OS上用正则的话要用e参数取代P参数,也可以用sed命令:
sed命令格式:sed's/oldValue/newValue/g'
提取字符串echohere365test|sed's/.*ere([0-9]*).*/1/g'
输出:365
s表示替换,1表示用第一个括号里面的内容替换整个字符串,sed支持*,不支持?、+,不能用d之类,正则支持有限。
替换字符串echohere365test|sed's/365/789/g'
输出:here789test