ubuntuusers.de

Text Dateien zusammenführen

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

Delta-Surfer1319

Anmeldungsdatum:
3. Mai 2008

Beiträge: Zähle...

Wohnort: Kreis Recklinghausen

Hallo,

ich habe zwei Text Dateien, die ich gern übers Terminal zusammenführen würde. Dabei enthält Datei A.txt 300 Einträge, die auch in der Datei B.txt vorhanden sind und daraus aber gelöscht werden sollen. Über grafische Programme wie gedit oder Kate bin ich nicht weiter gekommen, da man da wohl nur einzeln replacen kann und OpenOffice verschmilzt die Einträge teilweise sodass da Fehler entstehen. So dachte ich dass es über das Terminal eventuell einen besseren und schnelleren Weg gibt. Würde mich über Hilfe freuen. Danke und Gruß D.1319

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Sollte mit Textdateien vergleichen comm gut gehen.

Ungetestet:

1
comm -3 file1 file2 > result

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Hi D-S,

an so einem Projekt der komplexeren Art sitze ich auch gerade.

Es kommt ja darauf an, wie viel "Gleichheit" diese Zeilen in den beiden Fassungen haben. Wenn sie komplett gleich sind brauchst Du tatsächlich nur comm darüber schicken. Oder sind die Zeilen nicht komplett gleich ? - oder vielleicht nicht in der richtigen Reihenfolge ?

Dann müssten wir mal genauer gucken ...

LG,

track

Delta-Surfer1319

(Themenstarter)

Anmeldungsdatum:
3. Mai 2008

Beiträge: 30

Wohnort: Kreis Recklinghausen

in der Tat, die Reihenfolge ist nicht gleich, comm sagt mir da entsprechend "Datei 2 ist nicht sortiert" sowie "Datei 1 ist nicht sortiert"

was muss ich dann anwenden, wenn die Zeilen nicht in der selben Reihenfolge sind?

habe es mit

diff A B > result

versucht, dieser gibt mir eine Datei aus in der die Unterschiede sichtbar sind, den Befehl "–-suppress-common-lines" für "keine gemeinsamen Zeilen ausgeben" kann ich irgendwie nicht anwenden, weiß auch nicht so recht, wo ich den dran fügen muss, so bekomme ich die Fehlermeldung "diff: unrecognized option '–-suppress-common-lines'"

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Delta-Surfer1319 schrieb:

in der Tat, die Reihenfolge ist nicht gleich, comm sagt mir da entsprechend "Datei 2 ist nicht sortiert" sowie "Datei 1 ist nicht sortiert"

Darfst Du sie denn sortieren? Wenn ja sollte es mittels sort-Behandlung im Vorfeld klappen.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Delta-Surfer1319 schrieb:

in der Tat, die Reihenfolge ist nicht gleich, ...

Tja, und für sowas habe ich mir eine Reihe hübscher awk-Skripte gebaut, die die 1. Datei zeilenweise in ein Array einlesen und dann jeweils die passende Zeile für die Folgedatei(en) dort heraussuchen.

Darum auch die Frage: sind die Zeilen exakt gleich, kommen Zeilen vielleicht mehrfach vor, stimmt die Anzahl (also: ist es eine echte 1:1- Zuordnung ?) und die Reihenfolge ?

Dazu müsstest Du etwas mehr verraten, sonst wird das ein Fall für meine Kristallkugel. 😉

track


p.s.:

"–-suppress-common-lines" für "keine gemeinsamen Zeilen ausgeben" kann ich irgendwie nicht anwenden,

Nee. da steht ja auch ein "-" zu viel.

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

track schrieb:

Tja, und für sowas habe ich mir eine Reihe hübscher awk-Skripte gebaut, die die 1. Datei zeilenweise in ein Array einlesen und dann jeweils die passende Zeile für die Folgedatei(en) dort heraussuchen.

Wenn Du die Dateien sortierst, sollten die Zeilen ja parallel vorhanden sein - wenn sie denn existieren und gleich sind.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Nee, bei mir kann man die Daten nicht einfach alphabetisch sortieren, das sind nämlich (elektronische) Krankenblätter.
Und die Diagnosen sollten schon bei den Patienten bleiben, zu denen sie gehören. 😉

Außerdem geht es bei mir um das zusammenführen von verschiedenen KB- Teilen, die durchaus nicht einfach identisch sind.

Ganz so heiß wird die Datei von Delta-Surfer1319 schon nicht sein. Vielleicht hat er es ja schon mit diff geschafft.

track

Antworten |