Archiv verlassen und diese Seite im Standarddesign anzeigen : Umlaute in Datei umwandeln
meinereinerseiner
28-05-2001, 13:54
Hi,
wie ersetze ich in einer Datei die umlaute
ä,Ä,ö,Ö,Ü,ü,ß gegen die entsprechenden Zeichen?
der tom
Ich bin mir nicht sicher, wie du das meinst, aber wenn es darum geht Dateien, die in Dos bzw. Windoof geschrieben wurden in UNIX-Format zu konvertieren versuch doch mal "recode" oder "dos2unix" bzw. "unix2dos".
meinereinerseiner
28-05-2001, 14:35
nein, dos2unix ändert die zeilenumbrüche und so, ich möchte ö in oe und Ö in Oe wandeln. usw.
der tom
z.b. mit sed
sed -e 's/ö/oe/g' datei
kann sein, dass du anstelle der umlaute den oktalwert nehmen musst
Per ole-mole sed:
umlaut2code.sed enthält:
s~ü~ü~g
s~Ü~Ü~g ...etc.
sed -e -f umlaut2code.sed < Datei > Datei.ohneUmlaute
[ 28. Mai 2001: Beitrag editiert von: kabalak ]
meinereinerseiner
28-05-2001, 17:04
Hi,
habs mal getestet:
Inhalt filter.txt:
s~ö~oe~g
s~ä~ae~g
s~ü~ue~g
s~ß~ss~g
s~Ö~Oe~g
s~Ä~Ae~g
s~Ü~Ue~g
s~{~(~g
s~[~(~g
s~]~)~g
s~}~)~g
Ergebnis:
devil:~/entwicklung # sed -e -f filter.txt < org.txt > neu.txt
sed: -e expression #1, char 1: Unknown command: ``-''
der tom
TommeS73
28-05-2001, 20:40
Hi,
ich habe mal schnell ein paar Perl-Zeilen zusammengestrickt. Damit sollte es funzen.
(Datei mit Umlaute als Argument übergeben)
#!/usr/bin/perl
open (FILE,"$ARGV[0]") || die "Datei kann nicht geöffnet werden!";
while ($inhalt=FILE) #"File" muss in öffnenden und schließenden spitzen Klammern stehen
{$inhalt =~ s/ö/oe/g;
$inhalt =~ s/Ö/Oe/g;
$inhalt =~ s/ä/ae/g;
$inhalt =~ s/Ä/Ae/g;
$inhalt =~ s/ü/ue/g;
$inhalt =~ s/Ü/Ue/g;
$inhalt =~ s/ß/ss/g;
$inhalt =~ s/{/(/g;
$inhalt =~ s/}/)/g;
$inhalt =~ s/\[/(/g;
$inhalt =~ s/\]/)/g;
print "$inhalt";
}
close (FILE);
mfg
Thomas
[ 28. Mai 2001: Beitrag editiert von: TommeS73 ]
[ 28. Mai 2001: Beitrag editiert von: TommeS73 ]
[ 28. Mai 2001: Beitrag editiert von: TommeS73 ]
Hans-Georg Normann
29-05-2001, 21:35
Versuchst mal mit folgender filter.txt
1,$s/ö/oe/g
1,$s/ä/ae/g
1,$s/ü/ue/g
und dem Aufruf sed -e -f filter.txt < org.txt > neu.txt
Hans
<BLOCKQUOTE><font size="1" face="Arial,Helvetica,Geneva">Zitat:</font><HR>Original erstellt von meinereinerseiner:
Ergebnis:
devil:~/entwicklung # sed -e -f filter.txt < org.txt > neu.txt
sed: -e expression #1, char 1: Unknown command: ``-''
der tom[/QB][/quote]
Tschuldigung: sed -f filter.txt < org.txt > neu.txt; das -e ist überflüssig.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.