grep用法总结

来源:互联网 发布:软通动力java工资 编辑:程序博客网 时间:2024/05/14 02:59

grep,egrep,fgrep

grep:根据模式搜索文本,并将符合模式的文本行显示出来
pattern:文本字符和正则表达的元字符组合而成匹配条件。

grep [options] PATTERN [FILE...]
        -i 忽略大小写
        --colour
        -v:显示没有被模式匹配到的行
        -o:只显示被模式匹配到的字符串
        -E:来使用扩展正则表达式
        -A:匹配其后面的几行
        -B:
        -C:
*:任意长度的任意字符
?:任意单个字符
[  ]: 匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
字符集:使用时还要用[]:例如[[:digit:]]
[:digit:] 数字
[:lower:]小写字母
[:upper:]大写字母
[:punct:]标点符号
[:space:]空白字符
[:alpha:]所有字母
[:alnum:]包含所有数字和字母
正则表达式:REGILAR EXPression 默认情况下正则表达式工作在贪婪模式下
元字符:
.:匹配任意单个字符

字符次数:
*:匹配其前面的字符任意次
    a,b,ab,aab,acb,adb,amnb
.*:任意长度的任意字符
\?:匹配其前面的字符1次或0次
\{m,n\}:匹配其前面的字符至少m次,之多n次
\{1,\}:至少一次
\{0,3\}:至多三次

位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首
$:锚定行尾,此字符前面的任意内容必须出现在行尾
^$:空白行
\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b:锚定词尾,其前面的任意字符必须作为单词的尾部出现
\<root\>

分组
\(\)
    \(ab\)*
grep 'l..e.*l..e' test3.txt
he love his lover
she like her lover
he like his liker
she love her like

    后向引用
   \1:第一个左括号以及与之对应的右括号所包含的所有括号
   grep '\(l..e\).*\1' test3.txt
   grep '\([0-9]\).*\1$'  /etc/inittab

正则表达式:
        basic   regexp  基本
        extended   regexp  扩展
grep :使用基本正则表达式定义的模式来过滤文本的命令。
        -E:来使用扩展正则表达式
扩展正则表达式:
.
[ ]
[^]

次数匹配:
*:
?:
+:匹配其前面的至少一次
{m,n}

位置锚定:
^
$
\<
\>

分组:
():分组
\1,\2,\3,...

或者
|: or
C|cat:C或者cat
分组 grep -E '(C|c)at'  test6.txt
至少一个空白字符 grep --color -E '^[[:space:]]+' /etc/grub/grub.conf
grep -e = egrep

\<[1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3]\>(\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>){2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>

0 0