我有一个包含
等条目的日志文件INFO 2013-08-16 13:46:48,660 Index=abc:12 insertTotal=11
INFO 2013-08-16 13:46:48,660 Index=abcd:12 insertTotal=11
INFO 2013-08-16 13:46:48,660 Index=def:134 insertTotal=11
INFO 2013-08-16 13:46:48,660 Index=abkfe insertTotal=11
INFO 2013-08-16 13:46:48,660 Index=lmkfe insertTotal=11
INFO 2013-08-16 13:46:48,660 Index=lmkfe insertTotal=11
我想grep并提取与我的模式匹配的单词abc:<some_number>
和def:<some_number>
。
$ cat "log.txt" | grep -w "abc" -w "def" >> "failed_values.txt";
所以在这种情况下,我的failed_values.txt
应该只有
abc:12
def:134
要注意的关键是我的模式以:
结尾,后跟数字,然后是空格e。 G。 abc:122
。
答案 0 :(得分:6)
请尝试以下操作:
$ grep -Eio '[a-z]+:[0-9]+' log.txt
abc:12
abcd:12
def:134
-i
忽略大小。-o
仅打印匹配的部分。<强>更新强>
仅匹配abc
/ def
:
$ grep -Eio '\b(abc|def):[0-9]+\b' log.txt
abc:12
def:134
(abc|def):
:匹配abc
或(|)def
后跟:
。[0-9]+
:匹配的数字。\b
:匹配字边界答案 1 :(得分:1)
$ grep -Eo "(abc|def):[0-9]*" log.txt
abc:12
def:134
答案 2 :(得分:0)
这应该这样做:
grep "[ad][be][cf]:[0-9]*" [your file]