Нужна помощь RegExp для команды Linux Bash grep для фильтрации строк, содержащих квадратные скобки

Используя следующий пример, мне нужно отфильтровать строку, содержащую только "ABC", пропуская строки, соответствующие "ABC", которые содержат квадратные скобки:

2012-04-04 04: 13: 48 760~sample1~ABC[TLE 5332.233 2/13/2032 3320392]:CAST
2012-04-04 04:13:48,761~sample2~ABC
2012-04-04 04:13:48,761~sample3~XYZ[BAC.CAD.ABC.CLONE 232511]: ТЕСТ

Вот что у меня есть, но пока я не могу успешно отфильтровать строки в квадратных скобках:

bash-3.00$ cat Metrics.log | grep -e '[^\[\]]' | grep -i 'ABC'

Пожалуйста помоги?

2 ответа

Решение

Отредактировано на основе комментариев:

Пытаться grep -i 'ABC' Metrics.log | grep -v "[[]" | grep -v "ABC\w"

Входные данные:

2012-04-04 04:13:48,760~sample1~ABC[TLE 5332.233 2/13/2032 3320392]:CAST
2012-04-04 04:13:48,761~sample2~ABC
2012-04-04 04:13:48,761~sample3~XYZ[BAC.CAD.ABC.CLONE 232511]:TEST
2012-04-04 04:13:48,761~sample4~XYZ
2012-04-04 04:13:48,761~sample5~ABCD
2012-04-04 04:13:48,761~sample6~ABC:TEST

Выход:

2012-04-04 04:13:48,761~sample2~ABC
2012-04-04 04:13:48,761~sample6~ABC:TEST
 $cat log |  grep -v '\[.*\]' | grep ABC
Другие вопросы по тегам