我是条汉子 发表于 2018-8-29 07:39:11

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 file 不区分大小写的查找含c的行
  grep -n -i cfile
  3.匹配重复字符
  grep ^/..../ file匹配以/开头中间任意四个字符并以/结尾的共六个字符
  grep ^-*B查看行首含有0个“-”或任意个“-”的并以B结尾的匹配
  4.转义符
  例子1:转义“.”
  grep www\.example\.com搜索含有www.example.com的行
  例子2:转义“-”
  grep '\-{5\} file
  5.POSIX字符
  [:upper:]   表示大写字母
  [:lower:]   表示小写字母
  [:digit:]   表示数字
  [:alnum:]   表示大小写字母和数字
  [:space:]   表示空格或Tab键
  [:alpha:]   表示大小写字母
  [:cntrl:]   表示ctrl键
  [:graph:]或[:print:]表示ASCII吗33-126之间的字符
  [:xdigit:]表示16进制数字
  例子:
  grep ^[[:upper:]] file查找行首字符以大写字母开头的行
  POSIX字符需要用[]括起来
  6.精确匹配
  grep "\ 匹配含有单词the的行
  必须带引号
  7.或字符(扩展正则表达式字符)
  grep -E "ou|se" 匹配带有ou或se的行
  8.egrep和fgrep
  egrep "ou|se" file
  egrep "^-+b" file匹配以一个"-"或多个“-”开头并且后面含有b的行
  fgrep ca file只能匹配字符
  * 。
  *.doc *.txt *.ppt *.docx *.pptx
  grep -n -i chapter *.doc ..
  grep -n *.doc ...
  grep -r -c ^$ *
  grep -c ^$ *
  grep -E :$|[^[:alpha]]

页: [1]
查看完整版本: shell脚本学习笔记之grep命令用法