grep命令使用总结

字符匹配查询,用的最多的就是grep命令了。grep用到的几个参数如下:
        -c:只输出匹配行的计数。
    -i:不区分大小写
    -h:查询多文件时不显示文件名。
    -l:查询多文件时只输出包含匹配字符的文件名。
    -n:显示匹配行及行号。
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行。
grep的正则表达式的策略:
        \: 忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    \<:从匹配正则表达式的行开始。
    \>:到匹配正则表达式的行结束。
    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    .:所有的单个字符。
    * :有字符,长度可以为0。
查找文件中是否含有test字符串,不论大小写,并且打印出是第几行:
grep -ni 'test' tmp.txt

找出含有grank或者frank这两个单词的行时,可以这样操作:

grep  -n  "[fg]rank"  tmp.txt
匹配含有数字的行,可以这样操作:

grep -n "[0-9]" tmp.txt
匹配以the开头的行,可以这样操作:

grep -n "^the" tmp.txt
匹配以d]结尾的行,可以这样操作:

grep -n "d]$" tmp.txt
匹配含有一个o以上的字符串的行,可以这样操作:

grep -n "OO*" tmp.txt
匹配以g开头和以g结尾的字符串:

 grep -n 'g.*g' tmp.txt 
要匹配特定地重复了多少个字符的字符串,需要使用{次数},这里若是{2}表示字符重复2次的字符串,若是{2,5},则表示字符重复了2~5次的字符串。这里需要注意的是{}在shell中有特殊的含义,使用的时候需要进行转义。

grep -n 'o\{2\}' tmp.txt 
grep -n 'o\{2,5\}' tmp.txt 













你可能感兴趣的:(grep命令使用总结)