ich den folgenden Befehl leite die groß wie lange arbeitet, wie sie in dem ersten Dateiinhalt ist:AWK FNR == NR auf einer leere Datei
awk -F, 'FNR==NR {a[tolower($1)]++; next} !a[tolower($1)]' OutSideSyncUsers.csv NewUsers.csv
Wenn die erste Datei leer ist, der Befehl nicht funktionieren . Ich fand eine online-Referenz:
alle Programme, die die Zwei-Dateien Idiom verwenden, nicht korrekt funktionieren, wenn die erste Datei (in diesem Fall leer ist, awk werden die Aktionen zugeordnet NR == FNR ausführen beim Lesen der zweiten Datei). Um das zu korrigieren, können Sie die NR == FNR-Bedingung verstärken, indem Sie einen Test hinzufügen, der überprüft, dass auch FILENAME gleich ARGV [1] ist.
Ich bin nicht sicher, ob ich verstehen, wie (oder wo) in der Abfrage der Testprüfung hinzuzufügen gleich ARGV [1]
Jede Hilfe apperciated würde
genial, Ihre Erklärung ist genau die Informationen, die ich gesucht habe – moore1emu
Ich habe die Erklärung in meiner Antwort hinzugefügt. 'FILENAME' wird bereits von' awk' auf den aktuellen Eingabedateinamen gesetzt. – anubhava
Das ist auf @EdMorton. Ja, nach dieser Prüfung wird 'FNR == NR' nicht benötigt. – anubhava