Linux基础

Linux基础命令(三)-grep

2018-09-18  本文已影响0人  hipeer

grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。通常grep有三种版本grep、egrep(等同于grep -E)和fgrep。
egrep为扩展的grep(等同于grep -E)
fgrep则为快速grep(固定的字符串来对文本进行搜索,不支持正则表达式的引用但是查询极为快速)。
grep是linux文本处理三剑客之一。


1. grep [option] pattern [file...]
  • -i:匹配时忽略大小写
  • -o: 只显示匹配到的字符串
  • -v: 显示没有匹配到的所有行
  • -n: 显示行号
    注:使用grep匹配时需要使用双引号,防止系统报错

2. egrep [option] pattern [file...] 或 grep -E [option] pattern [file...]

egrep和grep相比取消了基本正则表达式的斜杠转义,egrep的[option] 选项参考grep


grep和egrep基本正则表达式元字符比较

字符匹配

egrep 说明 grep 说明
. 匹配任意字符 . 匹配任意字符
[] 指定范围内的任意单个字符 [] 指定范围内的任意单个字符
[^] 指定范围外的任意单个字符 [^] 指定范围外的任意单个字符
[:digit:] 匹配任意单个数字 N/A N/A
[:alpha:] 匹配任意单个字母 N/A N/A
[:alnum:] 匹配任意单个字母或数字 N/A N/A
[:space:] 匹配单个空格 N/A N/A
[:punct:] 匹配任意单个符号 N/A N/A
[:lower:] 匹配任意单个小写字母 N/A N/A
[:upper:] 匹配任意单个大写字母 N/A N/A

注:.在[]中就代表.本身


匹配次数

egrep grep 说明
* * 匹配0次或多次
+ \+ 匹配1次或多次
? \? 匹配0次或一次
{n} \{n\} 匹配n次
{0,n} \{0,n\} 匹配0次到n次
{n,m} \{n,m\} 匹配n次到m次
{n,} \{n,\} 至少匹配n次

分组

egrep grep 说明
() \(\) 把括号中的内容当作整体处理

注:后向引用,\1:引用第一个左括号及与之对应的右括号之间的所有内容。\2:引用第一个左括号及与之对应的右括号之间的所有内容。\3...


或者

egrep grep 说明
| | 或者

锚定

egrep 说明 grep 说明
^ 行首 ^ 行首
$ 行尾 $ 行尾
^$ 空白行 ^$ 空白行
\<,\b 词首 N/A N/A
\>,\b 词尾 N/A N/A
上一篇 下一篇

猜你喜欢

热点阅读