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 |