Нужна помощь 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