ich die zweite Säule (begrenzt durch ein Leerzeichen) in file1 vergleichen will:Vergleichen Spalten in zwei Textdateien und Übereinstimmungsleitungen
n01443537/n01443537_481.JPEG n01443537
n01629819/n01629819_420.JPEG n01629819
n02883205/n02883205_461.JPEG n02883205
Mit der zweiten Spalte (begrenzt durch ein Leerzeichen) in file2:
val_8447.JPEG n09256479
val_68.JPEG n01443537
val_1054.JPEG n01629819
val_1542.JPEG n02883205
val_8480.JPEG n03089624
Wenn es eine Übereinstimmung gibt, möchte ich die entsprechende Zeile von Datei2 ausdrucken.
gewünschte Ausgabe in diesem Beispiel:
val_68.JPEG n01443537
val_1054.JPEG n01629819
val_1542.JPEG n02883205
ich folgendes versucht, aber die Ausgabedatei leer ist:
awk -F' ' 'NR==FNR{c[$2]++;next};c[$2] > 0' file1.txt file2.txt > file3.txt
Auch dies versucht, aber das Ergebnis war das gleiche (leere Ausgabedatei):
awk 'NR==FNR{a[$2];next}$2 in a' file1 file2 > file3.txt
Hmm ... meine Ausgabe bleibt leider noch leer. Ich denke, das Problem könnte in meinen Quelldateien liegen. Wie kann ich überprüfen, ob die Spalten tatsächlich in jeder Zeile durch ein Leerzeichen begrenzt sind? Ich bin mir ziemlich sicher, dass sie das sind, aber vielleicht kann ich das überprüfen, um sicher zu sein. –
Sie können 'cat -vte' auf beiden Dateien ausführen und prüfen, welche Zeichen vorhanden sind (möglicherweise aufgrund der DOS-Zeilenendung) – anubhava
Wir könnten hier etwas unternehmen. Für Datei1 bekomme ich ein '$' an jede Zeile angehängt. Für Datei2 bekomme ich '^ M $' an jede Zeile angehängt. –