最近要做一些文本性的工作,简单总结下自己需要用到的grep基础知识:
首先可以在csh中设置alias grep 'grep --color=auto'
,使匹配关键字高亮
options:
-A NUM 打印匹配行及其之后的NUM行。因此,一共打印NUM+1行,A是after
-B NUM 打印匹配行及其之前的NUM行。共打印NUM+1行,B是before
-C NUM 打印匹配行及其之前和之后的行。共打印2NUM+1行,C是context
-c 统计匹配到的行数
-e grep中的或 例如grep -e "A" -e "B" text
表示满足A或者满足B
BTW:egrep是grep扩展表达式的写法。grep更简洁的表示或:egrep "A|B" text
或 grep -E "A|B" text
。grep表示与:grep "A" text | grep "B"
grep是天生支持正则表达式的,有时可以看到有人把匹配条件用单引号括起来,除了极个别字符$等,一般没区别。
-i 忽略大小写
-n 同时显示行号
-R 或 -r 递归搜索目录进行匹配
-v 逆向匹配, grep -v "A" text | grep "B"
匹配没有A且有B的行
-w 匹配单词,和正则中\<word\>
的用法一致
记住这几个指令基本满足日常文本处理。更多的选项可以在linux中查看 man grep