Linux 三剑客之grep实战

基本介绍

grep是Linux中一种强大的文本搜索工具,用于查找文件里符合条件的字符串。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。若不指定任何文件名称,或是所给予的文件名为"-",则grep指令会从标准输入设备读取数据。

语法格式

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
  • -a  : 不要忽略二进制的数据
  • -A n  : 显示匹配后和它后面的n行
  • -b : 在显示符合样式的那一行之前,标示出该行第一个字符的编号
  • -B n : 显示匹配后和它前面的n行
  • -c : 计算符合样式的列数
  • -C n : 显示匹配后和它前后面的n行
  • -d <动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作
  • -e  : 指定字符串做为查找文件内容的样式
  • -E  : 扩展选项为正则表达式
  • -f : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式
  • -F  : 将样式视为固定字符串的列表
  • -G : 将样式视为普通的表示法来使用
  • -h : 在显示符合样式的那一行之前,不标示该行所属的文件名称
  • -H  : 在显示符合样式的那一行之前,表示该行所属的文件名称
  • -i : 忽略字符大小写的差别
  • -l  : 列出文件内容符合指定的样式的文件名称
  • -L : 列出文件内容不符合指定的样式的文件名称
  • -n : 在显示符合样式的那一行之前,标示出该行的列数编号
  • -o : 只显示匹配PATTERN 部分。
  • -q : 不显示任何信息
  • -r : 递归查找,等价于"-d recurse"
  • -s : 不显示错误信息
  • -v : 显示不包含匹配文本的所有行
  • -V : 显示版本信息
  • -w : 只显示全字符合的列
  • -x --line-regexp : 只显示全列符合的列
  • -y : 此参数的效果和指定"-i"参数相同

正则表达式

  • ^ 锚定行的开始 :'^a'匹配所有以a开头的行
  • $ 锚定行的结束  :'a$'匹配所有以a结尾的行
  • . 任意一个字符   :'gr.p'匹配gr后接一个任意字符,然后是p
  • * 匹配零个或多个前一个字符:'a*'匹配所有零个或多个a的行
  • + 匹配一个或多个先前的字符:'a+'匹配所有一个或多个a的行
  • ? 匹配零个或多个先前的字符:'a*'匹配所有零个或多个a的行
  • [] 匹配一个指定范围内的字符:如'[Gg]rep'匹配Grep和grep
  • [^] 匹配一个不在指定范围内的字符:如:'[^A-D]rep'匹配不包含A-D的一个字母开头,紧跟rep的行
  • \(..\)  标记匹配字符:'\(love\)',love被标记为1
  • \<  锚定单词的开始:'\<grep' 匹配包含以grep开头的单词的行    
  • \>  锚定单词的结束:'grep\>'匹配包含以grep结尾的单词的行    
  • x\{m\} 重复字符x,m次:'0\{5\}'匹配包含5个o的行
  • x\{m,\} 重复字符x,至少m次:'o\{5,\}'匹配至少有5个o的行
  • x\{m,n\}重复字符x,至少m次,不多于n次:'o\{5,10\}'匹配5--10个o的行
  • \w 匹配文字和数字字符,也就是[A-Za-z0-9]:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p
  • \b 单词锁定符: '\bgrep\b'只匹配grep
发布了126 篇原创文章 · 获赞 219 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/yz930618/article/details/89456518