Поиск столбца в File1, присутствующего в File2 в awk

У меня 2 файла, как показано ниже

File1
USA,China,India,Canada

File2
Iran|XXXXXX|Iranian
Iraq|YYYYYY|Iraquian
Saudi|ZZZZZ|Saudi is a Rich Country
USA|AAAAAA|USA is United States of America.
India|IIII|India got freedom from British.
Scot|SSSSS|Canada Mexio.

Как я могу прочитать значение в File1 и проверить, совпадает ли оно с первой строкой с разделителями в File2, используя awk? Я пробовал это, но не смог. Пожалуйста помоги.

Для вышеуказанного ввода вывод должен быть

USA Matches
China Not Matched
India Matches
Canada Not Matches

person Vinoth Karthick    schedule 03.01.2019    source источник


Ответы (2)


Не могли бы вы попробовать следующее.

awk 'FNR==NR{a[$1];next} {for(i=1;i<=NF;i++){if($i in a){print $i,"Matches"} else {print $i,"Not Matches."}}}' FS="|" Input_file2 FS="," Input_file1
person RavinderSingh13    schedule 03.01.2019

Вы также можете попробовать Perl

$ cat vinoth1
USA,China,India,Canada
$ cat vinoth2
Iran|XXXXXX|Iranian
Iraq|YYYYYY|Iraquian
Saudi|ZZZZZ|Saudi is a Rich Country
USA|AAAAAA|USA is United States of America.
India|IIII|India got freedom from British.
Scot|SSSSS|Canada Mexio.
$ perl -F, -lane ' BEGIN { $x=qx(cat vinoth2) } print $_,$x=~/^$_/m ? " matches" : " not matches" for(@F) ' vinoth1
USA matches
China not matches
India matches
Canada not matches
person stack0114106    schedule 03.01.2019