shell脚本学习笔记之grep命令用法



***grep基本用法

   grep [选项] [模式] [文件..]


选项

 -c 只输出匹配行的数量

 -i 搜索时忽略大小写

 -h 查询多文件时不显示文件名

 -l 只搜索匹配的文件名,而不列出具体的匹配行

 -n 列出所有的匹配行,并显示行号

 -s 不显示不存在或无匹配文本的错误信息

 -v 显示不包含匹配文本的所有行

 -w 匹配整词

 -x 匹配整行

 -r 递归搜索,不仅所属当前工作目录,而且搜索子目录

 -q 禁止储存任何结果,以推迟状态表示所属是否成功

 -b 打印匹配行距文件的头部的偏移量,以字节为单位

 -o 与-b选项结合使用,打印匹配的词距文件头部的偏移量,以字节为    单位

 -E 支持扩展正则表达式

 -F 不支持正则表达式,安装字符串的字面意思进行匹配

模式

字符串

变量

正则表达式



1.grep搜索含有空格的文件或字符需要使用引号括起来

2.grep搜索多个文件时可以使用通配符




grep结合正则表达式


1.匹配行首

例子:

 grep ^a file  查找文本中以a为行首的行


例子:grep -c ^$ file 查找文本中的空白行数


      grep -c ^[^$] file  查找文本中的非空白行数

 


2.设置大小写

  grep -n [Cc] file 不区分大小写的查找含c的行

  grep -n -i c  file  


3.匹配重复字符

  grep ^/..../ file  匹配以/开头中间任意四个字符并以/结尾的共六个字符


  grep ^-*B  查看行首含有0个“-”或任意个“-”的并以B结尾的匹配


4.转义符

  例子1:转义“.”

  grep www\.example\.com  搜索含有www.example.com的行

 

  例子2:转义“-”

  grep '\-{5\} file


5.POSIX字符

  [:upper:]   表示大写字母[A-Z]

  [:lower:]   表示小写字母[a-z] 

  [:digit:]   表示数字[0-9]

  [:alnum:]   表示大小写字母和数字[0-9a-z-A-Z]

  [:space:]   表示空格或Tab键

  [:alpha:]   表示大小写字母[A-Z-a-z]

  [:cntrl:]   表示ctrl键

  [:graph:]或[:print:]  表示ASCII吗33-126之间的字符

  [:xdigit:]  表示16进制数字[0-9A-F-a-f]


例子:

   grep ^[[:upper:]] file  查找行首字符以大写字母开头的行

   POSIX字符需要用[]括起来

 

6.精确匹配

  grep "\<the\> 匹配含有单词the的行

  必须带引号


7.或字符(扩展正则表达式字符)

  grep -E "ou|se" 匹配带有ou或se的行


8.egrep和fgrep 

  egrep "ou|se" file

  egrep "^-+b" file  匹配以一个"-"或多个“-”开头并且后面含有b的行


fgrep ca file  只能匹配字符


   [0-9]* 。[A-Za-Z][A-Z-a-z]


   *.doc *.txt *.ppt *.docx *.pptx


grep -n -i chapter *.doc ..

grep -n [cC][hH][aA][pP][tT][eE][rR] *.doc ...



grep -r -c ^$ *

grep -c ^$ *


grep -E :$|[^[:alpha]] 

  


你可能感兴趣的:(File)