标签:grep
grep:
Globa search REgular expression and Print out the line.
文本搜索工具。根据用户指定的文本模式(正则表达元字符及正常字符组成正常组合而成)对目标文件进行逐行搜索,显示能匹配到的行;
grep [OPTIONS] PATTERN [FILE...]
--color[=WHEN], --colour[=WHEN]
auto always never
alias grep=‘grep --color=auto‘
grep --color=auto "root" /etc/passwd
-v: 显示不能够被模式匹配到的行
-o :只显示能被模式匹配到的行
-A: 显示条件匹配的一行和后N行 -A N GREP -A 1
-B:前面N行
-C:前后各N行
-i: 不区分字符大小写
-E:扩展的正则表达式
正则表达式;REGular EXPression REGEXP
由元字符及正常字符所书写的模式,其中的元字符不表示字符本身的意义,而是用于表达控制或通配等功能;
基本正则表达式: grep
扩展正则表达式:grep -E ,egrep
fgrep:fast,不支持使用正则表达式
基本正则表达式元字符:
字符匹配:
.
匹配任意单个字符
[]
匹配指定范围内的任意单个字符
[^]
匹配指定范围外的任意单个字符
[0-9],[[:digit:]],[^0-9][^[:digit:]] [a-z][[:lower:]]
[A-Z][[:upper:]] [[:space:]] [[:punct:]] [0-9a-zA-Z] [[:alpha:]]
转义
[[:alnum:]\.] 所有字符.
次数匹配,希望匹配字符后面提供一个控制符,用于表达匹配其前面字符指定的次数
*:任意长度,表示0次、1次或多次:
"ab*c"
abbc,ac abb,
.*:贪婪模式,匹配任意长度的任意字符。
\?:匹配其前的字符0次或1次;表示其左侧字符可以有可无。
“ab\?c” \?
ac,abc
\+: 1次或者多次, 表示其左侧字符至少出现一次
“ab\+c”
abc,abbbc
\{m\} 精确匹配M次左侧字符精确出现次数 ab\{2\}c abbc
\{m,n\}至少M次,至多N次 ab\{0,3\}c ,ac- abbbc
\{0,n\}至多N次
\{m,\}至少M次:
位置锚定:
^:行首
$:锚定行尾
^PATTERN$:用模式来匹配整行;grep‘^$‘ |wc -l 空白行
grep ‘^[[:space:]]*$‘
^$匹配空白行:
单词锚定:由非特殊字符组成的连续的字符串
\<, \b:锚定词首
\< PATTERN , \b
\>:锚定词尾,也可以用\b
PATTERN>\
\<PATTERN>\ 匹配PATTERN能匹配到的整个单词
# ifconfig | grep ‘\<[0-9]\{2\}\>‘ 匹配2位数字
分组: grep ‘\(ab\)*c‘
注意:分组中的模式,在某次的具体匹配过程中所匹配的字符,可以被grep记忆
(保存于内置的变量中,这些变量是\1 \2,)因此,还可以被引用;
\1:引用,模式中自左而右,由第一个左括号以及与之对应的右括号中的模式所匹配到的内容;
标签:grep
原文地址:http://nickxu.blog.51cto.com/1207271/1629156