linux grep命令

简介

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

 

grep常用用法

[root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色显示

注:--color=auto 来将关键字部分使用颜色显示
可以在 ~/.bashrc 内加上这行:alias grep='grep --color=auto'
执行source ~/.bashrc立即生效。

 1、搜索字符串

grep 字符串  filename
cat filename |  grep 字符串

grep -n -A3 -B2 字符串  ----把关键字所在的前2行和后3行一起显示

 2、递归查找

grep 'hello'  *   ----在当前目录搜索带'hello'行的文件
grep -r  'hello'  *   ----在当前目录及其子目录下搜索带'hello'行的文件
grep -l -r  'hello'  * ----在当前目录及其子目录西安搜索'hello'行的文件,但不显示匹配的行,只显示匹配文件

3、正则匹配

't[ae]t'    ----匹配tast、test
'[^a-z]oo'  ----oo前面没有小写字母
'^the'   ----以the开头
'^[^a-zA-Z]'  ----开头不是英文字母(^在[]内表示反向选择,在[]外表示行首)
'\.$'  ----结尾是小数点
grep -n '^$'   -----找出空白行

.(小数点):代表一定有一个任意字符
*:重复一个字符

'o*'  ----用于空字节或一个o以上的字节
'g.*g'   ----g开头、g结尾,当中字符可有可无
'o\{2\}'  ----2个o的字符串
'go\{2,5\}g'  ----g后面接2到5个o,再接一个g

4、扩展

egrep '3+'  file  ----包含多个3的行
grep -E  '3+'  file 
grep '3\+'   file

egrep '(no)+' file ----搜索一个或多个连续的no的行 grep -E '(no)+' file grep '\(no\)\+' file

 

posted @ 2014-12-31 12:35  apple飘98  阅读(192)  评论(0编辑  收藏  举报