guten tag,
kann man mehrere einzelne txt dateien unter windows (oder mit dos befehlen?) zu einer einzigen grossen zusammenkopieren?
![](/thumbnails/75x75/user/avatar/default_avatar.jpg)
guten tag,
kann man mehrere einzelne txt dateien unter windows (oder mit dos befehlen?) zu einer einzigen grossen zusammenkopieren?
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
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.
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 :)
Nicht schlecht....wußte nicht, daß das geht...merci für den Tipp.
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.
Weiter unten habe ich natürlich nicht mehr gelesen.
Oder man nimmt einfach den Total Commander (oder ähnliche Tools)
Der kann das auch.
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...
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.
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? :)
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!
@all + speziell @laola1:
ich bedanke mich. copy /b funktioniert so wie ich das haben wollte.
herzlichen dank
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
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 :)
Ich hätte gerne, dass Wörter verglichen werden und nur doppelte Wörter entfernt werden.
Vielen Dank!!!
Alex
Öhm, Du hast also Wortlisten und willst daraus die Doubletten entfernen? Oder wie jetzt? Kannste mal ein kleines Beispiel bringen? :)
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..