grep 命令:在文件中搜索指定的字符串

6.11.10  grep 命令:在文件中搜索指定的字符串

grep命令是"global regular expression print"的缩写,用于在文件中搜索指定的字符串模式,列出含有匹配模式字符串的文件名,并输出含有该字符串的文本行,命令格式为:

 
 
  1. grep [选项] [查找模式][文件名……] 

其中各可用选项意义如下。

-F:将查找模式看成是单纯的字符串。

-i:要查找的字符串不区分字母的大小写。

-r:以递归方式查询目录下的所有子目录的文件。

-n:标出包含指定字符串的行编号。

例如在文件example中查找包含"aa"字符串的行,命令如下:

 
 
  1. # cat  example  
  2. aa bb cc dd  
  3. aa bb ff  
  4. ee  
  5. # grep  aa  example  
  6. aa bb cc dd  
  7. aa bb ff 

如果待查找的字符串模式的字数大于1,则必须在字符串模式两边使用单引号,否则系统会只把第一个字作为搜索目录,如:

 
 
  1. # cat  example  
  2. aa bb cc dd  
  3. aa bb ff  
  4. ee  
  5. # grep  bb  cc  example  
  6. grep: cc: 没有那个文件或目录  
  7. example:aa bb cc dd  
  8. example:aa bb ff  
  9. # grep  'bb cc'  example  
  10. aa bb cc dd 

例如在/passwd文件中查找包含"teacher"字符串的行,命令为:

 
 
  1. #grep  -F  teacher  /etc/passwd  
  2. teacher:*:500:500: teacher:/home/ teacher:/bin/bash 

再如在file1中查找包含"print" 字符串的所有行,不管字符的大小写,命令行如下:

 
 
  1. # grep  -i  'print'  file1 

又如查找包含字符串"bb cc"的行,输出该行,并输出该行所在的行号,命令为:

 
 
  1. # cat  example  
  2. aa bb cc dd  
  3. aa bb ff  
  4. ee  
  5. # grep  -n 'bb cc'  example  
  6. 1:aa bb cc dd 

通常grep命令配合管道符(|)还可用来作为其他命令的输入,例如统计指定文件中包含某字符串的行数、字数和字节数:

 
 
  1. # cat  example  
  2. aa bb cc dd  
  3. aa bb ff  
  4. ee  
  5. # grep  'bb' example | wc  
  6.       2       7      21 

grep命令除了作为其他命令的输入,也可以作为一些命令(例如ls,ps)的输出。例如在当前运行的进程中查找vi程序的进程信息,命令行如下:

 
 
  1. # ps  aux  |  grep  vi  
  2. root      5716  0.0  0.2   4956   736 pts/1  
    T    Jul25   0:00 vi  
  3. root     20681  0.3  0.4   4960  1012 pts/1   
    T    14:21   0:00 vi  
  4. root     20689  5.0  0.2   4132   668 pts/1   
    R+   14:22   0:00 grep vi 

注意:还有两个命令与grep非常相似。一个是"egrep",表示Extend grep,执行效率比grep高,但需占用较大的内存空间;另一个是"fgrep",占用空间比egrep小,且速度也比grep快。由于三个命令的结构、功能类似,因此大部分参数可以共享。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15142212/viewspace-675048/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15142212/viewspace-675048/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值