首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

【每日一个Linux命令】16. 强大的文件搜索工具grep

2013-10-08 
【每天一个Linux命令】16. 强大的文件搜索工具grep命令用途grep (global search regular expression(RE) and

【每天一个Linux命令】16. 强大的文件搜索工具grep
命令用途
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)
grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,不会修改原文件内容。

命令语法grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
其中option为grep命令的选项,pattern为要匹配的简单字符串或携带特殊字符的模式字符串,-e可以指定多个要匹配的pattern,file为文件列表,可有多个文件

如果在File参数中指定了多个名称,grep命令将显示包含匹配行的文件的名称。对 shell 有特殊含义的字符 ($, *, [, |, ^, (, ), \ ) 出现在 Pattern参数中时必须带双引号。


参数列表

grep --help


2. 打印匹配行前面打印该行所在的块号码 -b

bixiaopeng@bixiaopengtekiMacBook-Pro ~$ ls -al |grep -b 'D/BatteryService( 2732): update start' xiami.log 
【每日一个Linux命令】16. 强大的文件搜索工具grep
3. 只打印匹配的行数,不显示匹配的内容 -c
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ ls -al |grep -c 'D/BatteryService( 2732): update start' xiami.log21

4. 当搜索多个文件时,不显示匹配文件名前缀 -h
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ ls -al |grep -h 'D/BatteryService( 2732): update start' xiami.log testgrep09-03 10:59:48.537 D/BatteryService( 2732): update start09-03 11:00:28.601 D/BatteryService( 2732): update start

5. 取消显示,只返回退出状态。0则表示找到了匹配的行  -q
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ ls -al |grep -q 'D/BatteryService( 2732): update start' xiami.logbixiaopeng@bixiaopengtekiMacBook-Pro ~$ echo $?0bixiaopeng@bixiaopengtekiMacBook-Pro ~$ ls -al |grep -q 'bixiaopeng' xiami.logbixiaopeng@bixiaopengtekiMacBook-Pro ~$ echo $?1

6. 打印匹配模板的文件清单 -l
#查看哪个文件中包含字符 bixiaopengbixiaopeng@bixiaopengtekiMacBook-Pro ~$ grep -l 'bixiaopeng' xiami.log testgreptestgrep

7. 打印不匹配模板的文件清单 -L
#查看哪个文件中不包含字符 bixiaopengbixiaopeng@bixiaopengtekiMacBook-Pro ~$ grep -L 'bixiaopeng' xiami.log testgrepxiami.log

8. 在匹配的行前面打印行号 -n
#打印出bixiaopeng所在的行号bixiaopeng@bixiaopengtekiMacBook-Pro ~$ grep -n 'bixiaopeng' testgrep10:my name is bixiaopeng11:bixiaopeng is my name

9. 不显示关于不存在或者无法读取文件的错误信息 -s
#不加-s的情况bixiaopeng@bixiaopengtekiMacBook-Pro ~$ grep -n 'hahahah' testgrepsgrep: testgreps: No such file or directory#加了-s以后bixiaopeng@bixiaopengtekiMacBook-Pro ~$ grep -s 'hahahah' testgrepsbixiaopeng@bixiaopengtekiMacBook-Pro ~$

10. 反检索,只显示不匹配的行 -v
#显示testgrep文件中不包含hahahah的行bixiaopeng@bixiaopengtekiMacBook-Pro ~$ grep -v 'hahahah' testgrepwirelessqa is my blogwirelestqa is testfilewirelesmqa is testfilemmmqa is testfilemmqamqa is testfileWirelessqa is my blogmy blog is wirelessqamy name is bixiaopengbixiaopeng is my namebxp is my namemy name is bxpmy name is (bxp)b$##

11. 如果被\<和\>引用,就把表达式做为一个单词搜索 -w
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ grep -w '\<bxp\>' testgrepbxp is my namemy name is bxpmy name is (bxp)

12. 显示软件版本信息 -V
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ grep -Vgrep (BSD grep) 2.5.1-FreeBSD

13. 不区分大小写地搜索。默认情况区分大小写 -i
#如果不加 -i搜索结果如下,大写的Wirelessqa不会被显示bixiaopeng@bixiaopengtekiMacBook-Pro ~$ grep -w '\<wirelessqa\>' testgrepwirelessqa is my blogmy blog is wirelessqa#如果加上-i 结果如下bixiaopeng@bixiaopengtekiMacBook-Pro ~$ grep -wi '\<wirelessqa\>' testgrepwirelessqa is my blogWirelessqa is my blogmy blog is wirelessqa

【每日一个Linux命令】16. 强大的文件搜索工具grep

热点排行