Vergleichen Sie 2 Unix-Dateien und Ausgabe Übereinstimmender Zeilen in eine Neue Datei?
Ich habe 2 nix-Dateien. Alle Daten auf einer einzigen Zeile in jeder Datei. Jeder Wert getrennt durch ein null-Zeichen. Einige aus der Werte in den Daten entsprechen.
Wie würde ich das analysieren dieser Daten in eine neue Datei mit der Auflistung nur die passenden Werte ?
Ich herausfinden konnte ich sed benutzen, ändern Sie die null-Zeichen in die Zeilenumbrüche ? Von da an bin ich nicht wirklich sicher...
Irgendwelche Ideen ?
- Gibt es doppelte Werte in einer einzigen Datei? Einige Beispiel-Daten helfen würde.
- würde die Positionierung keinen Unterschied machen, oder sind Sie nur auf der Suche nach passenden Existenz an jedem beliebigen Punkt in der Datei? wie @JohnZwinck sagte, sample-Daten helfen würde.
- Die Positionierung macht keinen Unterschied, es kann sein, doppelte Werte.
awk
ist ein ideales Werkzeug für diese situation. Wenn Sie teilen können, einige Beispiel-Daten, dann wäre es hilfreich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
tr
,sort
undcomm
:Konvertiert null-Werte in neuen Zeilen, und Sortieren Sie das Ergebnis:
dann verwenden
comm
um die Zeilen, die sind Allgemeine auf beide Datei:Wenn es keine doppelten Werte in Datei1 oder Datei2, können Sie dies tun:
Diese zählen alle doppelte Werte zwischen den beiden Dateien.
Wenn die Reihenfolge der Felder ist wichtig, dass Sie dies tun können:
Dieser Ansatz nicht tragbar, Bedarf es der "process substitution" - Funktion der Bash.
Könnte dies für Sie arbeiten: