Allgemeines 22.010 Themen, 149.042 Beiträge

mehrere txt dateien zu einer einzigen zusammenfassen?

Silent Bob / 16 Antworten / Baumansicht Nickles

guten tag,

kann man mehrere einzelne txt dateien unter windows (oder mit dos befehlen?) zu einer einzigen grossen zusammenkopieren?

bei Antwort benachrichtigen
Olaf19 Silent Bob „mehrere txt dateien zu einer einzigen zusammenfassen?“
Optionen

Das Naheliegendste wäre, die erste Datei zu öffnen und nacheinander die Inhalte der weiteren Dateien mit Copy & Paste in die erste hineinzukopieren. Nach dem 1. Kopiervorgang unbedingt "Speichern unter" einem neuen Namen durchführen, damit - falls irgendetwas schiefgeht - die Originaldateien unbeschädigt bleiben.

Mag sein, dass es unter einem Windows-Dateimanager oder sogar unter DOS auch möglich ist, die Dateien irgendwie "aneinander zu kleben", aber das oben beschriebene Vorgehen scheint mir das einfachste zu sein.

CU
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
xafford Silent Bob „mehrere txt dateien zu einer einzigen zusammenfassen?“
Optionen

Für Windows direkt kenne ic keinen Befehl, der dies bewerkstelligt, man könnte es aber selbst als Script schreiben. Allerdings gibt es die Bin-Utils auch für Windows und da ist afair auch der Befehl "cat" dabei, mit dem sich Dateien aneinanderhängen lassen.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
laola1 Silent Bob „mehrere txt dateien zu einer einzigen zusammenfassen?“
Optionen

Start, Ausführen im Startmenü. Eingeben: "cmd" (ohne die Anführungsstriche)
Es öffnet sich jetzt eine Eingabekonsole.

Dort in das Verzeichnis mit den Dateien wechseln, dann einfach wie folgt vorgehen:
(alle Dateinamen im Beispiel sind natürlich entsprechend zu ersetzen)

copy /b text1.txt+text2.txt+text3.txt gesamt.txt

Danach enthaelt gesamt.txt den gesamten Text der drei Dateien.
Falls die Dateinamen Leerzeichen enthalten, müssen sie in Anführungszeichen eingefasst werden:

copy /b "probe 1.txt"+"probe 2.txt"+"probe 3.txt" "Das Ergebnis.txt"

Und nicht über das /b wundern, das ist notwendig damit alle Absätze usw. danach noch genauso aussehen wie vorher :)

bei Antwort benachrichtigen
xafford laola1 „Start, Ausführen im Startmenü. Eingeben: cmd ohne die Anführungsstriche Es...“
Optionen

Nicht schlecht....wußte nicht, daß das geht...merci für den Tipp.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Jens2001 laola1 „Start, Ausführen im Startmenü. Eingeben: cmd ohne die Anführungsstriche Es...“
Optionen

Das das auch auf der Komandozeile geht ist richtig.
Den Befehl copy giebt es schliesslich schon seit den seligen MS-DOS/PC-DOS Zeiten.

Nur mit dem Parameter irrst du.
Es giebt dabei zwei wichtige Parameter

1. /a = ASCII
2. /b = Binary

Der Unterschied liegt dabei in der unterschiedlichen Behandlung des Zeichens Ctrl-Z (EOF, Code 26, Hex 1A).
In einer ASCII-Datei ist Hex1A das Dateiende-Zeichen(EOF=End Off File). Es kommt im normalen Text nicht vor.
In einer Binär-Datei kann der Code 26 ( Hex 1A) überall und mehrmals vorkommen.

Der Parameter /a sorgt nun dafür das die Datei nur biss zum ersten Auftreten von Hex 1A kopiert wird. Alles danach (leerzeichen biss zum Ende der angegebenen Dateigröße) wird verworfen.
Das ist auch das Standardverhalten von copy.

Der Parameter /b sorgt dafür das das Zeichen Hex1A ignoriert und mitkopiert wird.
Alles bis zur angegebenen Dateigröße wird kopiert.

Für das Kopieren von txt-Dateien ist daher der Paramter /a zu benutzen, kann aber auch weggelassen werden.
Für das Kopieren von Binärdateien ist der Parameter /b zwingend erforderlich.

bei Antwort benachrichtigen
peterson laola1 „Start, Ausführen im Startmenü. Eingeben: cmd ohne die Anführungsstriche Es...“
Optionen

Weiter unten habe ich natürlich nicht mehr gelesen.

Oder man nimmt einfach den Total Commander (oder ähnliche Tools)

Der kann das auch.

bei Antwort benachrichtigen
laola1 Silent Bob „mehrere txt dateien zu einer einzigen zusammenfassen?“
Optionen

jens2001, das /b entspringt nicht meiner Phantasie sondern leidvoller Erfahrung mit dem Zusammenkopieren von Textfiles :) Am besten probierst Du es einfach mal aus, nimm ruhig ein paar Textfiles dazu, die unter Dos mit Edit erzeugt wurden :)
Je nachdem naemlich ob am Ende der letzten Zeile noch CR/LF steht oder nicht, kommt es da zu lustigen Verwurstungen, die man zuverlaessig vermeiden kann, wenn man einfach /b als Parameter setzt. Der grundsaetzliche Unterschied zwischen "ascii" und "binary" ist mir schon bewusst...

bei Antwort benachrichtigen
Jens2001 laola1 „jens2001, das /b entspringt nicht meiner Phantasie sondern leidvoller Erfahrung...“
Optionen

Für das kopieren von Textdateien mittels copy den Parameter /b zu benutzen wiederspricht nichtnur meiner Erfahrung sondern auch dem was in der Doku zu allen MS-DOS Versione steht.
Allerdings richtet der Parameter /b bei Textdateien i.A. auch keinen Schaden an. Es sollte aber normalerweise ohne gehen.
( /a bei Binärdateien giebt Chaos)

BtW: Eine unter DOS erstellte Textdatei sollte am Zeilenende immer ein CR/LF stehen haben. Steht da nur ein LF so deutet das darauf hin das sie unter Unix erstellt wurde.

bei Antwort benachrichtigen
laola1 Silent Bob „mehrere txt dateien zu einer einzigen zusammenfassen?“
Optionen

Ueber die Errata-Quote bei Dokumentation von MS brauchen wir doch jetzt nicht wirklich diskutieren, oder? Ausserdem, hast Du verifiziert, dass copy sich unter Windowsversionen die keinen MS-DOS Kern mehr haben genauso verhaelt wie unter MS-DOS?

Folgender Versuchsaufbau:

Notepad öffnen, schreibe folgenden Inhalt:
test1
test2
test3

Druecke nach der Ziffer 3 von "test3" nicht mehr Enter sondern speicher die Datei mittels Alt+D, U (Datei, speichern unter) als test1.txt ab.
Loesche nun den Inhalt des Notepadfensters (Datei, neu) und schreibe weiter:
test4
test5
test6

Und druecke wiederum nicht Enter nach der Ziffer sechs. Speicher diese Datei als text2.txt ab.

Oeffne nun eine Commandshell (Start, Ausfuehren, "cmd" eingeben), wechsle in das Verzeichnis mit den beiden Textdateien.

gebe ein:

copy test1.txt+test2.txt result1.txt
copy /b test1.txt+test2.txt result2.txt
fc /b result1.txt result2.txt

Ergebnis: Die beiden Dateien unterscheiden sich in der Länge, denn es ist ein EOF-Zeichen dazugekommen. Sowohl Edit als auch Notepad und Wordpad zeigen das als Extrazeichen an, sind also nicht in der Lage, das EOF richtig zu interpretieren. Welche Wirkung das bei anderer Software haben koennte, mag ich gar nicht erst ausprobieren ;)

(Hexdump der Datei result1.txt)
00000000: 74 65 73 74-31 0D 0A 74-65 73 74 32-0D 0A 74 65 test1..test2..te
00000010: 73 74 33 74-65 73 74 34-0D 0A 74 65-73 74 35 0D st3test4..test5.
00000020: 0A 74 65 73-74 36 1A - - .test6.

Fazit: Warum also nicht moeglichst originalgetreu mergen mit /b statt nachher noch manuell Sonderzeichen zu entfernen? :)

bei Antwort benachrichtigen
Jens2001 laola1 „Ueber die Errata-Quote bei Dokumentation von MS brauchen wir doch jetzt nicht...“
Optionen

Habe deinen Versuch nachgebaut und komme im Großen und Ganzen zum gleichen Ergebnis

Mit einer Ausname. Edit zeigt bei mir die gemergten Dateien richtig an.
Aber Notepad, Wordpad und Word zeigen das EOF-Zeichen fälschlich mit an.

Der Parameter /b dient also als Workaround um diesen Fehler auszubügeln.

Du hast also vollkommen recht!

bei Antwort benachrichtigen
Silent Bob Nachtrag zu: „mehrere txt dateien zu einer einzigen zusammenfassen?“
Optionen

@all + speziell @laola1:

ich bedanke mich. copy /b funktioniert so wie ich das haben wollte.

herzlichen dank

bei Antwort benachrichtigen
alexanderh Silent Bob „mehrere txt dateien zu einer einzigen zusammenfassen?“
Optionen

Hallo,

die genannten Verfahren sind zwar effektiv, können jedoch leider keine Duplikate eliminieren. Ich suche ein Tool, mit dem man zwei oder mehr txt-Dateien zusammenführen kann und dabei gleichzeitig Duplikate gelöscht werden.

Hat denn jemand eine Idee?

Vorab besten Dank!

Alex

bei Antwort benachrichtigen
laola1 Silent Bob „mehrere txt dateien zu einer einzigen zusammenfassen?“
Optionen

Das kommt ganz darauf an, wie tolerant der Vergleich ausfallen soll. Wenn bei einer Datei eine Leerzeile mehr drin ist, sind die beiden ja schon nicht mehr identisch, aber trotzdem ist eine davon ueberfluessig...
Haariges Thema :)

bei Antwort benachrichtigen
alexanderh laola1 „Das kommt ganz darauf an, wie tolerant der Vergleich ausfallen soll. Wenn bei...“
Optionen

Ich hätte gerne, dass Wörter verglichen werden und nur doppelte Wörter entfernt werden.

Vielen Dank!!!

Alex

bei Antwort benachrichtigen
laola1 Silent Bob „mehrere txt dateien zu einer einzigen zusammenfassen?“
Optionen

Öhm, Du hast also Wortlisten und willst daraus die Doubletten entfernen? Oder wie jetzt? Kannste mal ein kleines Beispiel bringen? :)

bei Antwort benachrichtigen
MezzoStyle Silent Bob „mehrere txt dateien zu einer einzigen zusammenfassen?“
Optionen

Die Diskussion ist zwar schon etwas älter, aber ich bin auch eben über Google hier drauf gekommen und habe ne bessere Lösung gefunden als mit DOS oder ähnlichem die Dateien per Kommandozeile zusammen zu fügen.

Und zwar geht das mit dem Tool TextKonverter, den es auf http://www.sttmedia.de/textkonverter gibt. Hier kann man alle Dateien auswählen und klickt dann auf "Dateien Zusammenfügen" und schon sind die Dateien zusammen. Ob man damit auch doppelte ausschließen kann weiß ich leider nicht..

bei Antwort benachrichtigen