我想使用 来匹配文件中以下模式的所有行grep
。
Abc::xyz() [18-Feb-15 12:09:16]
我用 grep 想出了下面的正则表达式,但它没有返回匹配项。请帮助使用正确的正则表达式。
grep -E "^[:alnum:]::[:alnum:]\(\)[:space:]\[.*\]$" <file_name>
在 python 中,下面的正则表达式可以工作,但不能与 grep 一起使用。
^.*::.*\(\) \[.*\]$
答案1
如果你想坚持使用这个,请使用:
grep -E "^[[:alpha:]]+::[[:alpha:]]+\(\)[[:space:]]\[.*\]$"
例如:
$ echo "Abc::xyz() [18-Feb-15 12:09:16]" | \
grep -E "^[[:alpha:]]+::[[:alpha:]]+\(\)[[:space:]]\[.*\]$"
输出:
Abc::xyz() [18-Feb-15 12:09:16]
这可以变得更简单:
grep -E "^[^:]+::[^(]+\(\) \[[^]]+\]$"
查看:
$ echo "Abc::xyz() [18-Feb-15 12:09:16]" | grep -E "^[^:]+::[^(]+\(\) \[[^]]+\]$"
Abc::xyz() [18-Feb-15 12:09:16]