我有兩個文件由選項卡分隔。比較第一個字段的文件,我需要打印字段不匹配的行。但是要打印的行是從文件(文件1)AWK - 如果不在數組中
文件1:
adu adu noun singular n/a n/a nominative
aduink adu noun plural 1pl n/a nominative
adum adu noun singular 1s n/a nominative
文件2:
adu adu noun singular n/a n/a nominative
aduink adu noun plural 1pl n/a nominative
xxadum adu noun singular 1s n/a nominative
所需的輸出:
adum adu noun singular 1s n/a nominative
我在想什麼:
awk 'FNR==NR{a[$1]=$0;next} !($1 in a)' file1 file2
但我需要打印,從文件(file1)行而不是從文件(file2)。我不能更改順序處理文件
您的'FNR == NR'表達式在awk腳本之後列出的第一個文件上運行,在本例中爲'file1'。這意味着您的後續表達式'!($ a in a)'將針對'file2'中的行進行評估。如果你想在數組中存儲'file2'的'$ 1',然後比較'file1'和數組的行,只需在awk命令行上交換文件的順序。 – ghoti