Поиск столбца в File1 присутствует в File2 в awk - PullRequest
0 голосов
/ 03 января 2019

У меня есть 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

Ответы [ 2 ]

0 голосов
/ 03 января 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
0 голосов
/ 03 января 2019

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

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
...