2016-10-31 5 views
-4

Also bevor ich es irgendwie crappily erklärte, aber dies ist eine Herausforderung von meinem bos, diesen Code nur mit basischer bash zu erstellen commands, im Grunde zu tun:Wie man 2 Dateien in bash vergleicht, dann löscht man die in der ersten Datei, die nicht mit der zweiten Datei übereinstimmen

während Zeile für file1.txt lesen lesen; Suche file2.txt nach der passenden Zeile wenn die passende Zeile gefunden wird print to file3.txt; Ansonsten gehe zur nächsten Zeile in Datei1.txt und wiederhole es in einer Schleife, bis Datei1.txt fertig gelesen ist.

Ich habe keine Ahnung, wie das geht, aber ich hoffe, das macht es einfacher. Ich kann diff comm oder irgendetwas anderes nicht benutzen, weil er sagte, das wäre zu einfach.

+0

Möchten Sie 1.txt mit 2.txt vergleichen und ersetzen? Warum musst du dann vergleichen? Gehen Sie voran und ersetzen Sie 1.txt durch 2.txt – Steephen

+0

Bitte zeigen Sie ein Beispiel für '1.txt',' 2.txt' und erwartete Ausgabe. Was hast du bisher versucht? –

+0

Ich habe es gerade mit den 2 Dateien aktualisiert und eine bessere Erklärung des Endziels unten, warum gerade das Ersetzen nicht funktioniert –

Antwort

0
# show the diff 
diff 2.txt 1.txt 

# update 1.txt to match 
cp 2.txt 1.txt 
+0

es muss komplett in bash mit keine Werkzeuge zu unterstützen –

+0

@mikedavidson Warum? –

+0

mein Chef ist ein Stickler –

Verwandte Themen