On Tue, June 30, 2009 2:09 pm, Al Bogner wrote:
Wie lösche ich mit sed in einer Variablen alle Zahlen und Zeichen von A-Z und a-z, ö soll also zB erhalten bleiben.
zB
var="Ich_möchte_3_Äpfel_um_1" echo "$var" | sed ...
Übrig bleiben soll "öÄ"
Dafür gibt es die Escape-Sequence \w (die auf [a-zA-Z0-9] matched¹. Zusätzlich hat aber noch Deine locale Einfluss auf die Sonderzeichen. In einer deutschen Lokale passt nämlich äöß auch in [a-zA-Z0-9]. Daher setze Deine Locale passend: #v+ chrisbra t41:~ [1086]% echo "$var" | sed 's/\w//g' chrisbra t41:~ [1086]% locale LANG=de_DE.UTF-8 LANGUAGE=en_US:en_GB:en LC_CTYPE="de_DE.UTF-8" LC_NUMERIC="de_DE.UTF-8" LC_TIME="de_DE.UTF-8" LC_COLLATE="de_DE.UTF-8" LC_MONETARY="de_DE.UTF-8" LC_MESSAGES="de_DE.UTF-8" LC_PAPER="de_DE.UTF-8" LC_NAME="de_DE.UTF-8" LC_ADDRESS="de_DE.UTF-8" LC_TELEPHONE="de_DE.UTF-8" LC_MEASUREMENT="de_DE.UTF-8" LC_IDENTIFICATION="de_DE.UTF-8" LC_ALL= chrisbra t41:~ [1088]% echo "$var" |LC_CTYPE=C sed 's/\w//g' öÄ #v- Grüße, Christian __ ¹) \w ist eine Gnu Extension und geht daher nur bei Gnu Sed, IIRC. Im Zweifel halt \w durch [a-zA-Z0-9] ersetzen. -- :wq! -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org