Почему awk «не в» массиве работает так же, как awk «в» массиве?

Вот awk-скрипт, который пытается установить разницу между двумя файлами на основе их первого столбца:

BEGIN{
    OFS=FS="\t"
    file = ARGV[1]
    while (getline < file)
        Contained[$1] = $1
    delete ARGV[1]
    }
$1 not in Contained{
    print $0
}

Вот TestFileA:

cat
dog
frog

Вот TestFileB:

ee
cat
dog
frog

Однако, когда я запускаю следующую команду:

gawk -f Diff.awk TestFileA TestFileB

Я получаю результат так же, как если бы сценарий содержал «in»:

cat
dog
frog

Хотя я не уверен, является ли синтаксис «not in» правильным для моего намерения, мне очень любопытно, почему он ведет себя точно так же. как когда я написал "в".

23
задан merlin2011 6 June 2012 в 23:37
поделиться