Как использовать exclude-pattern из файла - PullRequest
3 голосов
/ 17 апреля 2019

Я хочу использовать awk для поиска шаблона в нескольких файлах, но исключить некоторые шаблоны из файла

Это код, который я пробовал

BEGIN { print "Begin Processing of various Records"}
/Type.*ABC/ {a=1} /999/{a=0; if (a==1) print a;}
END { print "Process Complete" }

Примеры:

Это пример файла

Resources:
  CODE:
    Type: "ABC::DEF::AVC"
    Type: "ABC::DEF::999"
    Type: "ABC::DEF::ZZZ"

Теперь предположим, что у меня есть файл, исключаемый с содержимым

999
888
ZZZ

Теперь я хочу отобразить все строки с первым шаблоном соответствия, но исключить, если какой-либо шаблон изисключает найден.

Ответы [ 2 ]

3 голосов
/ 17 апреля 2019

Это то, что вы пытаетесь сделать?

$ awk -F'[:"]' 'NR==FNR{a[$0];next} /Type.*ABC/ && !($(NF-1) in a)' excludes file
    Type: "ABC::DEF::AVC"
1 голос
/ 17 апреля 2019

если ваши данные в файле 'd', попробуйте gnu awk:

awk '/Type.*ABC/ && $0 !~ /999|888|ZZZ/' d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...