OT: Text-Dateien von ANSI nach ASCII ändern?
Sicher ist meine Anfrage hier OT, aber vielleicht hat ja doch schon jemand mal so etwas mit einem Script erledigt und kann mir einen Tipp geben: Früher, noch im Dienst, habe ich alle Texte, die ich verfaßt habe (mußte) für ein Index-Programm (AskSam) auch als reine ASCII-Text-Datei abgespeichert. Aber ich merke, daß ich oft nicht aufgepaßt habe und ich eine ganze Reihe davon als ANSI-Text abgespeichert habe, statt als ASCII. Nun finde ich es einfach zu mühsam, die über 900 vorhandenen Text-Dateien durch Öffnen mit einem Editor zu kontrollieren, ob sie nun ASCII oder ANSI sind. Das müßte doch mit einem Script gehen, das als Stapelprogramm jede einzelne Datei erfaßt, prüft, und gegebenenfalls auch gleich nach ASCII umwandelt. Puh! Viel ( zu viel? ) verlangt? Jedenfalls wäre ich dankbar, wenn unter den vielen Topp-Könnern hier auf der Liste einer eine Idee hätte. Danke schon mal Hans -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Freitag, 30. Juni 2006 07:33 schrieb Hans Herdegen:
Sicher ist meine Anfrage hier OT, aber vielleicht hat ja doch schon jemand mal so etwas mit einem Script erledigt und kann mir einen Tipp geben: Früher, noch im Dienst, habe ich alle Texte, die ich verfaßt habe (mußte) für ein Index-Programm (AskSam) auch als reine ASCII-Text-Datei abgespeichert. Aber ich merke, daß ich oft nicht aufgepaßt habe und ich eine ganze Reihe davon als ANSI-Text abgespeichert habe, statt als ASCII. Nun finde ich es einfach zu mühsam, die über 900 vorhandenen Text-Dateien durch Öffnen mit einem Editor zu kontrollieren, ob sie nun ASCII oder ANSI sind. Das müßte doch mit einem Script gehen, das als Stapelprogramm jede einzelne Datei erfaßt, prüft, und gegebenenfalls auch gleich nach ASCII umwandelt. Puh! Viel ( zu viel? ) verlangt? Jedenfalls wäre ich dankbar, wenn unter den vielen Topp-Könnern hier auf der Liste einer eine Idee hätte. Danke schon mal Hans
recode hilft Dir weiter. Gruss Mario
Hallo Hans, hallo Leute, Am Freitag, 30. Juni 2006 07:33 schrieb Hans Herdegen:
Früher, noch im Dienst, habe ich alle Texte, die ich verfaßt habe (mußte) für ein Index-Programm (AskSam) auch als reine ASCII-Text-Datei abgespeichert. Aber ich merke, daß ich oft nicht aufgepaßt habe und ich eine ganze Reihe davon als ANSI-Text abgespeichert habe, statt als ASCII. Nun finde ich es einfach zu mühsam, die über 900 vorhandenen Text-Dateien durch Öffnen mit einem Editor zu kontrollieren, ob sie nun ASCII oder ANSI sind. Das müßte doch mit einem Script gehen, das als Stapelprogramm jede einzelne Datei erfaßt, prüft, und gegebenenfalls auch gleich nach ASCII umwandelt.
Du meinst sowas? # echo "info recode ist unübersichtlich" | recode iso-8859-1..ascii info recode ist un"ubersichtlich Ob Dein Ausgangszeichensatz wirklich iso-8859-1 ist, musst Du ausprobieren (einfach eine Datei zur Probe konvertieren). Falls Du den Zeichensatz nicht durch Zufall findest, bastle eine Beispieldatei mit ein paar Umlauten ziemlich am Dateianfang und verfüttere sie an file ;-) Falls Du statt "u lieber ü hast, fällt mir gerade kein passender Ziel-Zeichensatz ein. Du kannst stattdessen sed verwenden: sed ' s/ä/ae/g ; s/Ä/Ae/g ; s/ö/oe/g ; s/Ö/Oe/g ; s/ü/Ue/g ; s/Ü/Ue/g ; s/ß/ss/g ; ' < datei_alt > datei_neu Diese Ersetzungen sollten bei deutschem Text reichen - falls Du noch irgendwelche anderen Sonderzeichen verwendet hast, kannst Du ja den sed-Befehl entsprechend ergänzen. Falls jemand einen passenden Ziel-Zeichensatz für recode hat, um ä -> ae zu wandeln: immer her damit ;-) Gruß Christian Boltz -- Stell dein cron auch deine Rechneruhr? Ja? Dann würde ich ihm nicht allzuviel mehr anvertrauen - er scheint leicht überlastet und strebt in Riesenschritten die Rente an ;-) [Matthias Houdek in suse-linux zu einer Mail aus der Zukunft] -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hallo, Am Mon, 03 Jul 2006, Christian Boltz schrieb:
Am Freitag, 30. Juni 2006 07:33 schrieb Hans Herdegen:
Früher, noch im Dienst, habe ich alle Texte, die ich verfaßt habe (mußte) für ein Index-Programm (AskSam) auch als reine ASCII-Text-Datei abgespeichert. Aber ich merke, daß ich oft nicht aufgepaßt habe und ich eine ganze Reihe davon als ANSI-Text abgespeichert habe, statt als ASCII. [..] Du meinst sowas?
# echo "info recode ist unübersichtlich" | recode iso-8859-1..ascii info recode ist un"ubersichtlich
Ob Dein Ausgangszeichensatz wirklich iso-8859-1 ist, musst Du ausprobieren (einfach eine Datei zur Probe konvertieren).
Ist es mit Sicherheit nicht. Windows verwendet wie immer was eigenes, konkret wirde es wohl die Windows Codepage 1252 aka windows-1252 oder ms-ansi sein.
Falls jemand einen passenden Ziel-Zeichensatz für recode hat, um ä -> ae zu wandeln: immer her damit ;-)
Ich vermute mal, Hans meint nicht wirklich 7-Bit ascii ;) Also recode ms-ansi..latin9 recode ms-ansi..latin1 recode ms-ansi..UTF-8 recode ms-ansi..LaTeX (das waere 7-Bittig) recode ms-ansi..latin9/QP Noch ein paar Angebote findet man in der Ausgabe von 'recode -l'. -dnh -- *pieps* Die Verkehrshinweise: Im Netzwerkkabel von Marc 100 MB Stau wegen einer Vollsperrung der Ausfahrt Festplatte. Bitte warten Sie auf dem Rasthof FTP-Server. *pieps* -- C. Boltz -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Montag, 3. Juli 2006 17:05 schrieb David Haller: Danke David, danke Christian für Eure Hilfe - ich bin jetzt auf die Lösung gestossen: in dem Buch "Linux mit Methode" aus dem Verlag C&L fand ich auf Seite 319 die Lösung: recode latin1..ibmpc *.txt -- wobei zwischen latin1 und ibmpc genau zwei Punkte sein müssen. Ich bekam dann zwar noch die Fehlermeldung "Mehrdeutige Ausgabe in step `data ..CR-LF' diesen Fehler konnte ich ignorieren und habe deshalb mit folgendem Befehl alles gelöst recode -f latin1..ibmpc *.txt So paßt es für mich. Vielleicht hilft diese "Entdeckung" von mir ja auch anderen. Gruß Hans
Hallo,
Am Mon, 03 Jul 2006, Christian Boltz schrieb:
Am Freitag, 30. Juni 2006 07:33 schrieb Hans Herdegen:
Früher, noch im Dienst, habe ich alle Texte, die ich verfaßt habe (mußte) für ein Index-Programm (AskSam) auch als reine ASCII-Text-Datei abgespeichert. Aber ich merke, daß ich oft nicht aufgepaßt habe und ich eine ganze Reihe davon als ANSI-Text abgespeichert habe, statt als ASCII.
[..]
Du meinst sowas?
# echo "info recode ist unübersichtlich" | recode iso-8859-1..ascii info recode ist un"ubersichtlich
Ob Dein Ausgangszeichensatz wirklich iso-8859-1 ist, musst Du ausprobieren (einfach eine Datei zur Probe konvertieren).
Ist es mit Sicherheit nicht. Windows verwendet wie immer was eigenes, konkret wirde es wohl die Windows Codepage 1252 aka windows-1252 oder ms-ansi sein.
Falls jemand einen passenden Ziel-Zeichensatz für recode hat, um ä -> ae zu wandeln: immer her damit ;-)
Ich vermute mal, Hans meint nicht wirklich 7-Bit ascii ;) Also
recode ms-ansi..latin9 recode ms-ansi..latin1 recode ms-ansi..UTF-8 recode ms-ansi..LaTeX (das waere 7-Bittig) recode ms-ansi..latin9/QP
Noch ein paar Angebote findet man in der Ausgabe von 'recode -l'.
-dnh
-- *pieps* Die Verkehrshinweise: Im Netzwerkkabel von Marc 100 MB Stau wegen einer Vollsperrung der Ausfahrt Festplatte. Bitte warten Sie auf dem Rasthof FTP-Server. *pieps* -- C. Boltz
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hallo, Am Die, 04 Jul 2006, Hans Herdegen schrieb:
Am Montag, 3. Juli 2006 17:05 schrieb David Haller:
Bitte lass das TOFU.
für Eure Hilfe - ich bin jetzt auf die Lösung gestossen: in dem Buch "Linux mit Methode" aus dem Verlag C&L fand ich auf Seite 319 die Lösung: recode latin1..ibmpc *.txt -- wobei zwischen latin1 und ibmpc genau zwei Punkte sein müssen. Ich bekam dann zwar noch die Fehlermeldung "Mehrdeutige Ausgabe in step `data ..CR-LF' diesen Fehler konnte ich ignorieren und habe deshalb mit folgendem Befehl alles gelöst recode -f latin1..ibmpc *.txt [..]
Ich vermute mal, Hans meint nicht wirklich 7-Bit ascii ;) Also
recode ms-ansi..latin9 recode ms-ansi..latin1 recode ms-ansi..UTF-8 recode ms-ansi..LaTeX (das waere 7-Bittig) recode ms-ansi..latin9/QP
Dein Befehl ist faslch. Denn der Zeichensatz ist _nicht_ latin1 auch wenn das bei den meisten Zeichen so aussieht! Und "ibmpc" ist ein DOS-Zeichensatz (cp437 oder cp850). recode ms-ansi/CR-LF..cp850/CR-LF Vorausgesetzt cp850 ist der Ausgabezeichensatz den du willst. US-ASCII ist der aber auch nicht. RTFM. Z.B. 'man ascii', 'man latin1'... -dnh -- Memory is like gasoline. You use it up when you are running. Of course you get it all back when you reboot... --Actual explanation obtained from the Micro help desk. -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
participants (4)
-
Christian Boltz
-
David Haller
-
Hans Herdegen
-
Mario van der Linde