• 每天进步一点点!

文章分类

推荐网站

常用手册

linux查找文本命令 grep(二)【转载】

<<返回

2011-11-11 14:54:20

linux查找文本命令 grep

 

  • 实例

 

cat test_grep.txt 

 

abc     def     hic     lmn     abc

123     456     1.23    4.5     321

ABC     Def     hIc     lmN     ABC

ABC     Def     hIc     lmN     dsf

A BC     Def     hIc     lmN     ABC

You     are     a       good    boy

you     are     a       good    girl

you     are     not     a       good girl

That's  a       very    lovely  dog

 

例一:

grep -c 'good' test_grep.txt 
#3

cat test_grep.txt | grep  'good' | wc -l
#3

 

这两种方法都可以统计含有‘good’的行数,但是第一种方法明显更简练。

 

例二:

 grep -i 'abc' test_grep.txt

#abc     def     hic     lmn     abc
#ABC     Def     hIc     lmN     ABC
#ABC     Def     hIc     lmN     dsf
#A BC     Def     hIc     lmN     ABC

 

grep使用的正则表达式没有像其他语言那样的修饰符,如i,s,m。对于忽略大小写的匹配,可以用选项-i实现。

 

例三:

grep -n 'good' test_grep.txt 

#6:You     are     a       good    boy
#7:you     are     a       good    girl
#8:you     are     not     a       good girl

 

有时候希望得到匹配行的行号,-n 这个时候就显得很有用了。

 

例四:

grep -v '[a-zA-z]' test_grep.txt

#123     456     1.23    4.5     321

 

-v是个很有用的选项,有时要匹配的表达式正则表达式很难写,但是相反的匹配表达式却很好写,用-v选项进行反向查找可起到事半功倍的效果。例如在”linux查找文本命令 grep(一)“中提到的查找一个目录下的所有文件但不包含目录,用反向查找就比较方便。

 

例五:

grep -w 'good' test_grep.txt
#You     are     a       good    boy
#you     are     a       good    girl
#you     are     not     a       good girl
 
grep -w 'good girl' test_grep.txt
#you     are     not     a       good girl

 

-w与用“\<” "\>"效果相同,但书写相对简单。

 

例六:

ls

anaconda-ks.cfg  Desktop  install.log  install.log.syslog  test_grep2.txt  test_grep.txt

grep -l 'good' *

#install.log
#test_grep2.txt
#test_grep.txt

 

 选项-l可用来查找包含要搜索词的文件名。在查找文件时很有用。

  • grep的选项

 

选项

功能

-b

在每一行前面加上其所在的块号,根据上下文定位磁盘块时可能会用到

-c

显示匹配到的行的数目,而不是显示行的内容

-h

不显示文件名

-i

比较字符时忽略大小写的区别

-l(小写的字母L)

只列出匹配行所在文件的文件名(每个文件名只列一次),文件名之间用换行符分隔

-n

在每一行前面加上它在文件中的相对行号

-s

无声操作,即只显示报错信息,用于检查退出状态

-v

反向查找,只显示不匹配的行

-w

把表达式作为词来查找,就好像它被\<和\>夹着那样。只适用于grep(并非所有版本的grep都支持这一功能,譬如,SCO UNIX就不支持)

 

文章评论

  • 暂无评论

发表评论

昵称:

内容:

发表评论