grep 命令的基本模式和扩展模式

6月 16, 2020 |

基本模式下"?, +, {, |, (, 和 ) "按普通字符处理,如果要使用正则表达式语言,请使用反斜杠转义版本\?, \+, \{, \|, \(,和\)

比如匹配整个词长度为1,3之间且全为数值的行
注$'' 支持输出换行
echo $'javacocer c1n\n aaa a22C 1 232 ccc\n ['|grep -w '[0-9]\{1,3\}'
aaa a22C 1 232 ccc
echo $'javacocer c1n\n aaa a22C 1 232 ccc\n ['|grep -w -E '[0-9]{1,3}'
aaa a22C 1 232 ccc
expr 也是使用基本模式
所以如下示例中的'{}+'都需要转义
expr 'aaa a23C' : '.*\(a[0-9]\{2\}C\+\).*'
a23C
其实也很好理解,?, +, {, |, (, 和 ) 个字符在shell中有特殊的含义
比如? 常用的为#? 代表exit code
{} 括号扩展(brace exponsion)
| 管道符
()数字定义

grep -c xx #count match line
grep -v xx #match not contain xx line, invert-math

Posted in: Linux

Comments are closed.