У меня есть сценарий, написанный в bash, с одной командой grep, которую мне нужно изменить.bash grep regexp - исключая subpattern
Вообще у меня есть две модели: а & Б. Существует текстовый файл, который может содержать строки со всеми возможными комбинациями этих моделей, то есть: «xxxAxxx», «xxxBxxx», «xxxAxxxBxxx», «XXXXXX», где «x» - любые символы.
Мне нужно сопоставить ВСЕ строки APART из тех, которые содержат ТОЛЬКО "A".
На данный момент это делается с помощью «grep -v (A)
», но это ложный трек, так как это исключает также строки с «xxxAxxxBxxx» - которые подходят для меня. Вот почему он нуждается в модификации. :)
Сложная часть состоит в том, что этот grep лежит посреди команды «multiply-piped» со многими другими greps, seds и awks внутри. Таким образом, формирование более разумного шаблона было бы лучшим решением. Другие могли бы потребовать много дополнительной работы по изменению других команд там и даже повлиять на другие части кода.
Таким образом, возникает вопрос: существует ли возможность сопоставить шаблон и исключить подшаблон в одном grep, но разрешить им отображаться как в одной строке?
Пример: Файл содержит эти строки:
fooTHISfoo
fooTHISfooTHATfoo
fooTHATfoo
foofoo
и мне нужно, чтобы соответствовать
fooTHISfooTHATfoo
fooTHATfoo
foofoo
линии с "ЭТА" не допускается.
На самом деле я не заметил, что мой случай может быть написан как логическое выражение ... Решение отлично работало, спасибо вам большое. – ptr92zet