Hier ist ein awk-Skript, das Differenz von zwei Dateien basierend auf ihrer ersten Spalte zu setzen versucht:Warum funktioniert awk "nicht in" Array genau wie awk "in" Array?
BEGIN{
OFS=FS="\t"
file = ARGV[1]
while (getline < file)
Contained[$1] = $1
delete ARGV[1]
}
$1 not in Contained{
print $0
}
Hier ist TestFileA:
cat
dog
frog
Hier ist TestFileB:
ee
cat
dog
frog
jedoch , wenn ich den folgenden Befehl ausführe:
gawk -f Diff.awk TestFileA TestFileB
ich die Ausgabe so, als ob das Skript „in“ enthalten hatte:
cat
dog
frog
Während ich unsicher bin, ob „nicht in“ richtige Syntax für meine Absicht ist, bin ich sehr neugierig, warum es verhält sich genauso, wie wenn ich "in" geschrieben habe.
ich auch keine doc über „nicht in“ finden konnte, so dass ich damit einverstanden, dass es nicht die korrekte Syntax für meine ursprüngliche Absicht ist, aber das ist nicht die eigentliche Frage war, . – merlin2011