awk - Umlauteproblem

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
ropri8
Beiträge: 80
Registriert: 22.02.2008 08:37:56

awk - Umlauteproblem

Beitrag von ropri8 » 16.03.2017 15:40:38

Hallo!
Ich möchte mit einem awk-Script lange Textzeilen an einer bestimmten Stelle abschneiden, und zwar mit dem Befehl

Code: Alles auswählen

substr
Problem: wenn in der Zeile Umlaute sind, wird der jeweilige Umlaut mit 2 Zeichen gezählt

Beispiel:

Code: Alles auswählen

substr ($0,1,170)
-> normale Zeile ohne Umlaute wird mit 170 Zeichen abgeschnitten
-> Zeile mit einem Umlaut wird schon bei 169 Zeichen abgeschnitten

Was muß ich da umstellen?
Gruß,
Roman

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: awk - Umlauteproblem

Beitrag von Meillo » 16.03.2017 17:40:16

ropri8 hat geschrieben: Was muß ich da umstellen?
Du brauchst ein awk, das UTF-8-faehig ist.

Mit GNU awk 4.0.1 geht's bei mir:

Code: Alles auswählen

$ echo 'Füße' | gawk '{print(substr($0,0,3))}'     
Füß
Ebenso mit dem Heirloom awk:

Code: Alles auswählen

$ echo 'Füße' | src/heirloom-070715/nawk/awk '{print(substr($0,0,3))}'
Füß
mawk 1.3.3 will aber nicht:

Code: Alles auswählen

$ echo 'Füße' | awk '{print(substr($0,0,3))}'  
F
(Es kommen zwei Bytes raus: 0x46 und 0xc3 ... plus das Newline natuerlich.)


Was fuer ein awk hast du denn?
Use ed once in a while!

maroc

Re: awk - Umlauteproblem

Beitrag von maroc » 16.03.2017 18:23:27

Die Locale muss auch stimmen.

Code: Alles auswählen

$ export LANG=C
$ echo 'Füße' | awk '{print(substr($0,0,3))}'
Fü
$ export LANG=de_DE.UTF-8
$ echo 'Füße' | awk '{print(substr($0,0,3))}'
Füß

ropri8
Beiträge: 80
Registriert: 22.02.2008 08:37:56

Re: awk - Umlauteproblem

Beitrag von ropri8 » 17.03.2017 07:27:15

Hallo!
Ich habe mawk 1.3.3 Nov 1996

Die Lang-Variable ist standardmäßig auf de_AT.UTF-8 gestellt - sollte so passen, oder?
Mit de_DE.UTF-8 hab' ich's auch probiert - leider auch kein Erfolg damit ...

Gruß,
Roman

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: awk - Umlauteproblem

Beitrag von Meillo » 17.03.2017 08:28:22

ropri8 hat geschrieben: Ich habe mawk 1.3.3 Nov 1996
Das wird das Problem sein.

Probier mal:

Code: Alles auswählen

apt-get install gawk
Use ed once in a while!

ropri8
Beiträge: 80
Registriert: 22.02.2008 08:37:56

Re: awk - Umlauteproblem

Beitrag von ropri8 » 20.03.2017 06:44:56

Hallo!
Habe gawk installiert und damit läuft es nun :-)
Vielen Dank!!

Antworten