PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Zeichensatz



nieselfriem
12.08.13, 16:46
Hallo!

Ich logge mich per SSH auf ein Linuxserver ein. Dort will ich ein Skript schreiben und dort wird die Zeile

awk ´!/$i/´...
verwendet. Leider kommt bei der Ausführung des Skriptes der Fehler


awk: ^ invalid char 'Â' in expression

Es wird also statt dem ´ ein ´ eingefügt. Das habe ich mit einem anderen SSH-Client anstatt putty überprüft. Es wird RedHat 6.4 verwendet und in der
/etc/sysconfig/i18n steht folgendes:


LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"


Ich habe schon im Putty die Codierung auf utf8 umgestellt. Das sieht dann im vi ganz gut aus aber in der ausführung entsteht dann der obige Fehler.
Was kannich da machen?

VG niesel

nopes
12.08.13, 17:33
Bauchgefühl:
Nicht der Skript ist im Eimer, sondern die Eingabe, also das, was in $i steht.

Annahme es handelt sich um den Inhalt einer Datei, dann kann man mit "file -bi $datei$" prüfen, welches Encoding verwendet wird, Beispiel:
: echo öäü > text.txt
: file -bi text.txt
text/plain; charset=utf-8
: echo oau > text2.txt
: file -bi text2.txt
text/plain; charset=us-asciiSiehe auch http://stackoverflow.com/questions/1730878/encoding-of-file-shell-script.
In diesem Fall sollte sich das Problem lösen lassen, indem man vor dem Einlesen das Encoding entsprechend einstellt, Beispiel:
export LANG=de_DE.utf8

Efraim
12.08.13, 20:02
awk ´!/$i/´...Bist Du sicher dass Du da Backticks haben willst und keine Singlequotes?

awk '!/$i/'...