Mailinglist Archive: opensuse-de (990 mails)
| < Previous | Next > |
Re: sed: Alle Zahlen und Zeichen von A-z loeschen
- From: "Christian Brabandt" <cblists@xxxxxxxxxx>
- Date: Tue, 30 Jun 2009 14:36:08 +0200 (CEST)
- Message-id: <b8d078ba5ecd76c50e4cfca44cb0d7b9.squirrel@xxxxxxxxxxxxxxx>
On Tue, June 30, 2009 2:09 pm, Al Bogner wrote:
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@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx
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@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx
| < Previous | Next > |