Ich habe eine Datei, die wie so aussieht:bash: Ausgabe Inhalt diff Funktion in 2 Spalten
file1.txt
rs13339951:45007956:T:C 45007956
rs2838331 45026728
rs5647 12335
rs4687576 5353566
file2.txt
rs13339951 45007956
rs2838331 45026728
rs5647 12335
rs4687576:ATCFHF 5353566
Weitere Beschreibungen:
- Einige der Werte in column1 identisch sind zwischen den zwei Dateien aber nicht alle
- Die Werte in column2 sind alle identisch zwischen den zwei Dateien
ich möchte identifizieren die Zeilen, für die sich die Werte in Spalte1 zwischen den beiden Dateien unterscheiden. I.e. diese Zeilen 1 und 4 in meinem Beispiel. Ich kann dies mit diff file1.txt und file2.txt tun.
Allerdings möchte ich eine Enddatei wie folgt erhalten (siehe unten). Tatsächlich ziele ich darauf, sed zu verwenden, um die Namen einer Datei in der anderen zu ersetzen, so dass beide Dateien vollständig übereinstimmen.
rs13339951:45007956:T:C rs13339951
rs4687576 rs4687576:ATCFHF
Was haben Sie versucht? Sie können dies mit "awk" oder möglicherweise "Join" tun. – codeforester
Ich überlegte, etwas zu tun wie: diff file1.txt file2.txt | grep \^\ <| seds/< //' > part1.txt diff datei1.txt datei2.txt | grep \^\> | seds /> // '> part2.txt Und die irgendwie die 2 Dateien basierend auf Positionen, um eine Datei wie die oben genannten zu erhalten. Es scheint jedoch ziemlich ungeschickt und langweilig. Ich muss dies für mehr als 500 Dateien gleichzeitig tun, damit ein einzelner Befehl gut ist. – m93