我有一个命令 -
some command | egrep -i "($query_value)"
返回类似 -
的行> 2018-01-12 23:17:05.097 Info: Deleted 6 MB at 1129 MB/sec
> /Meters/00002c97 2018-01-12 23:17:05.104 Info: Deleted 6 MB at 864
> MB/sec /Meters/00002c99 2018-01-12 23:26:00.751 Info: Saving
> /Meters/00002c9a 2018-01-12 23:26:01.235 Info: Saved 6 MB at 12 MB/sec
> to /Meters/00002c9a 2018-01-12 23:26:01.268 Info: Merging 12 MB from
> /Meters/00002c9b and /Meters/00002c9a to /Meters/00002c9d,
> timestamp=15158205609400820 2018-01-12 23:26:04.248 Info: Deleted 9 MB
> at 3898 MB/sec /Meters/00002c9b 2018-01-12 23:26:04.250 Info: Deleted
> 6 MB at 2973 MB/sec /Meters/00002c9a 2018-01-12 23:34:01.420 Info:
> Saving /Meters/00002c9c 2018-01-12 23:34:02.192 Info: Saved 6 MB in 1
> sec at 8 MB/sec to /Meters/00002c9c 2018-01-12 23:34:02.248 Info:
> Merging 44 MB from /Meters/00002c98, /Meters/00002c9d, and
> /Meters/00002c9c to /Meters/00002c9f, timestamp=15158210419400730
> 2018-01-12 23:34:07.173 Info: Deleted 35 MB at 9431 MB/sec
> /Meters/00002c98 2018-01-12 23:34:07.175 Info: Deleted 12 MB at 6633
> MB/sec /Meters/00002c9d 2018-01-12 23:34:07.177 Info: Deleted 6 MB at
> 2869 MB/sec /Meters/00002c9c 2018-01-12 23:42:00.842 Info: Saving
> /Meters/00002c9e 2018-01-12 23:42:01.323 Info: Saved 6 MB at 12 MB/sec
> to /Meters/00002c9e 2018-01-12 23:51:00.951 Info: Saving
> /Meters/00002ca0 2018-01-12 23:51:01.680 Info: Saved 6 MB in 1 sec at
> 8 MB/sec to /Meters/00002ca0 2018-01-12 23:51:01.684 Info: Merging 10
> MB from /Meters/00002c9e and /Meters/00002ca0 to /Meters/00002ca2,
> timestamp=15158220605927080 2018-01-12 23:51:05.083 Info: Deleted 6 MB
> at 2127 MB/sec /Meters/00002c9e 2018-01-12 23:51:05.085 Info: Deleted
> 6 MB at 2933 MB/sec /Meters/00002ca0 2018-01-12 23:58:01.110 Info:
> Saving /Meters/00002ca1 2018-01-12 23:58:02.011 Info: Saved 6 MB in 1
> sec at 7 MB/sec to /Meters/00002ca1 2018-01-12 23:58:02.017 Info:
> Merging 12 MB from /Meters/00002ca2 and /Meters/00002ca1 to
> /Meters/00002ca4, timestamp=15158224804450160 2018-01-12 23:58:05.096
> Info: Deleted 9 MB at 419 MB/sec /Meters/00002ca2 2018-01-12
> 23:58:05.105 Info: Deleted 6 MB at 668 MB/sec /Meters/00002ca1
但我想进一步排除包含merging*mb*from|merged*mb*from
等模式的行。我不想要像 -
Merging 12 MB from or Merged 12 MB from .
我尝试使用grep的-v选项,但似乎不理解区分大小写和'AND','OR'操作。
答案 0 :(得分:0)
尝试grep
-E
(扩展正则表达式)-i
(忽略大小写)-v
(反转匹配):
grep -E -i -v 'merg(ing|ed).*mb.*from'
如果您认为"忽视案例"很慢,那么:
grep -E -v '[Mm]erg(ing|ed).*[Mm][Bb].*[Ff]rom'
答案 1 :(得分:0)
关注sed
可能对您有帮助。
sed -n '/Merging.*MB.*from/d;/Merged.*MB.*from/d;p' Input_file
OR
sed -n '/[mM]erging.*[mM][bB].*from/d;/Merged.*MB.*from/d;p' Input_file
编辑: 此处为上述代码添加说明。
sed -n ' ##-n will STOP printing by default for any line of Input_file till we print it explicitly.
/Merging.*MB.*from/d; ##Looking for string Merging.*MB.*from and using d will skip it and will NOT print it.
/Merged.*MB.*from/d; ##Looking for string Merged.*MB.*from and using d will skip it and will not print it.
p ##mentioning p will print the lines apart from lines which have above mentioned string in them
' Input_file ##Mentioning Input_file name here.