学习啦 > 学习电脑 > 操作系统 > Linux教程 > linuxgrep命令学习与总结

linuxgrep命令学习与总结

时间: 志艺942 分享

linuxgrep命令学习与总结

  grep命令是linux中强大的文本搜索工具,那么grep取名是怎么来的呢?接下来是小编为大家收集的linuxgrep命令学习与总结,欢迎大家阅读:

  linuxgrep命令学习与总结

  -、grep简述

  grep命令是linux中强大的文本搜索工具,那么grep取名是怎么来的呢?

  grep : g (globally) search for a re (regular expression) and p (print ) the results

  从上面的英文解释中可以看出,grep命令使用正则表达式搜索文本,并把匹配的行打印出来

  二、grep使用格式

  grep [OPTION]... PATTERN [FILE]...

  三、OPTION

  -i:匹配时不区分大小写进行匹配。

  -w:匹配时只匹配整个单词,而不是字符串的一部分(如PATTERN='she'时匹配单词she,而不匹配shell)

  -h:输出时每行行首不显示文件名。

  -H:输出时每行行首显示文件名。

  -n:输出时每行显示行号。

  -c:输出时只显示每个文件匹配行计数。

  -L:输出时只显示不包含匹配项的文件名。

  -l:输出时只显示包含匹配项的文件名。

  -o:输出时每行只显示匹配项内容

  -s:忽略错误信息。

  -v:逆向匹配,选择不匹配的行。

  -A:After的意思,显示匹配项后n行的数据

  -B:before的意思,显示匹配项前n行的数据

  -C:显示匹配字符串前后各n行的数据

  --color:以特定颜色高亮显示匹配项内容

  --color选项是个非常好的选项,可以让你清楚匹配上哪些字符。

  最好在自己的.bashrc文件中加入:

  alias grep='grep --color=auto'

  再以source .bashrc来立即生效即可这样在每次grep搜索之后,自动高亮匹配效果了。

  grep 'she' test.txt

  grep -i 'she' test.txt

  grep -c 'she' test.txt

  grep -in 'she' test.txt

  grep -v 'she' test.txt

  grep -w 'she' test.txt

  grep -o 'she' test.txt

  grep -C 2 'she' test.txt

  着重说下-o参数

  假如grep 'she' test.txt输出为

  she is beautiful

  I like she

  则grep -o 'she' test.txt输出为

  she

  she

  意思就是只显示匹配项部分,行中其它部分不显示

  另说明下,PATTERN是正则表达式,为了避免shell的元字符对正则表达式的影响,请用单引号('')括起来,不要用双引号括起来("")或者不括起来。

  四、PATTERN

  4.1基本正则表达式

  \:转义字符。

  ^:锚定行的开始。如:'^help'匹配以help开头的行

  $:锚定行的结束。如:'help$'匹配以help结尾的行

  .:匹配任意一个非换行符的字符。如:'he.p'匹配help,heap等,但不能匹配hep

  *:前面的字符重复0到多次。如:'he*p'匹配hp,hep,heep等

  [list]:匹配字符集中的一个字符。如:'[hk]elp'匹配help,kelp

  [n1-n2]:匹配字符范围中的一个字符。如:'[a-z]elp'匹配aelp,belp,...,zelp

  [^list]:匹配字符集以外的一个字符。如:'[^a-d]elp'不匹配aelp,belp,celp,delp。可匹配eelp,help, elp等

  \{n1,n2\}:前面的字符重复n1-n2次。如:'h\{1,3\}elp'匹配help,hhelp,hhhelp。

  \<:锚定单词的开始。如:'\

  \>:锚定单词的结尾。如:'p\>'匹配以p结尾的单词。匹配help,但不匹配person

  特别说明:^在PATTERN开始位置出现才表示锚定行的开始,其它位置出现只是作为^字符。

  例如:

  grep '^help' test.txt 表示匹配以help开头的行

  grep 'help^' test.txt 表示匹配包含字符串help^的行

  同理,$在PATTERN末尾位置出现才表示锚定行的结束,其它位置出现只是作为$字符。

  PATTERN为'^$'表示空行,因为只有行首和行尾

  \{n1,n2\}中n2可省略,表示前面字符重复n1至多次,重复次数不设上限

  4.2扩展正则表达式

  grep一般情况下支持基本正则表达式,可以通过参数-E支持扩展正则表达式,另外grep单独提供了一个扩展命令叫做egrep用来支持扩展正则表达式,这条命令和grep -E等价。

  +:前面的字符重复1到多次。如:'he+p'匹配hep,heep,heeep等,但不匹配hp

  ?:匹配0或1次前面的字符。如:'he?p'匹配hp,hep

  |:或的方式匹配多个字串。如:'help|heap'匹配help,heap

  ():匹配整个括号内的字符串。如:'(help)+'匹配help,helphelp等,注意与'help+'的区别

 
 看了“linuxgrep命令学习与总结”还想看:

1.Linux文本匹配命令grep与fgrep使用全解

2.讲解Linux下grep命令的使用技巧

3.Linux下如何使用grep命令搜索多个单词

4.Linux系统中怎么使用grep命令

5.linux grep命令详解

2991780