如果发现字符串出现次数,请过滤行?


1

如果包含行,则需要过滤并显示日志行 正好2个逗号 ,并且不包含特定字符串。我需要哪个linux命令, awkgrep,表达是什么?

对于第二个条件,我使用这个:

awk '!/specificstring/' ./log/file/path

两个逗号检查我不知道如何输入。通常行就像这两个:

arbitrary,arbitrary,arbitrary,arbitrary
arbitrary,arbitrary,arbitrary

需要第二种类型的线。

试过这样的事情:

grep -P '[^,]+[,][^,]+[,][^,]+[,]"specificstring"[^,]+' ./log/file/path

如何排除“特定字符串”?

Answers:


2

我建议:

grep '^[^,]*,[^,]*,[^,]*$' file | grep -v 'specificstring'

0

这可以一次完成 awk,结合两个条件:

awk '/^[^,]*,[^,]*,[^,]*$/ && !/specificstring/' ./log/file/path

同样可以实现 perl 几乎完全相同的命令:

perl -lane 'print if /^[^,]*,[^,]*,[^,]*$/ && !/specificstring/' ./log/file/path

从更一般的意义上回答这个问题,即 如果找到任意数量的字符串活动,则过滤行

perl -lane '@m = /,/g; print if scalar @m == 2 and !/specificstring/' ./log/file/path
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.