lichengcom2009 发表于 2018-8-28 06:30:05

shell脚本--grep工具

  grep工具
  shell命令行之所以便捷和它所支持的工具是离不开的,其中grep工具就是一个搜索神器,它可以搜索整个linux系统所有文件中的所有信息。
  grep的灵活使用离不开正则表达式
  正则表达式是一种查找以及字符串替换操作,它只是一个字符串,没有长度的限制,但是一般却表较短。可以被认为是一种轻量级、简介、使用与特定领域的编程语言。
  这里主要使用grep工具
  grep工具一般用来做两件事,搜索文件和搜索指定字符串
  grep常用命令
  -a 不要忽略二进制数据。
  -b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
  -C或-除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
  -c 不显示匹配到的信息,只显示匹配到了多少个
  -d 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
  -e 指定字符串作为查找文件内容的范本样式。
  -E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
  -i 忽列字符大小写的差别。
  -l 列出文件内容符合指定的范本样式的文件名称。
  -L 列出文件内容不符合指定的范本样式的文件名称。
  -n 在显示符合范本样式的那一列之前,标示出该列的编号。
  -q 不显示任何信息。
  -s 不显示错误信息。
  -v 反转查找。
  -y 此参数效果跟“-i”相同。
  -o 只输出文件中匹配到的部分
  --color可以将匹配到的用颜色标识
  grep正则表达式有两种模式,一种是basic模式,另一种是extend模式(就是添加-E),不添加E的basic模式下?{}+()|都是本身字面意思,不是正则的意思,如果要用正则的意思需要用\转译,而-E模式下则恰巧相反
  
  例如我们touch一个file:里面的内容如下所示,数字为1-100,
hello-world86  
hello-world87
  
hello-world88
  
hello-world89
  
hello-world90
  
hello-world91
  
hello-world92
  现在我们要找到尾数是9的那些行,并用颜色标注
$ grep -E --color '.9$' file  
hello-world9
  
hello-world19
  
hello-world29
  
hello-world39
  
hello-world49
  
hello-world59
  
hello-world69
  
hello-world79
  
hello-world89
  
hello-world99
  这样即可,如果我们只要求显示匹配到的个数,则加上-c选项既可
grep -Ec --color '.9$' file  可以看出grep的格式大概就是这么个形式,主要的还是后面与正则表达式相关联的查找方式
  总结:grep是一个强大的查找工具,在进行快速寻找的时候可以很方便的使用


页: [1]
查看完整版本: shell脚本--grep工具