Schrift
[thread]12440[/thread]

sed - Ersetzen von nichtalphanumerischen Zeichen an bestimmten Stellen



<< >> 2 Einträge, 1 Seite
ingobulla
 2008-09-04 01:40
#114239 #114239
User since
2008-08-08
20 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe folgendes Shell-Kommando:

Code: (dl )
  sed -e 's/\([^:alnum:_]\)Nd\([^:alnum:_]\)/\1Rev_Nd\2/g' 

Es wird also Nd durch Rev_Nd ersetzt, falls Nd von Zeichen umgeben ist, die weder alphanumerisch noch "_" sind. Frage nun: Wie muss ich den Befehl ändern, so dass Nd auch dann ersetzt wird, falls es am Zeilenanfang oder am Zeilenende steht (oder beides gleichzeitig)?


//MODEDIT: Titel ergänzt
betterworld
 2008-09-04 01:46
#114240 #114240
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
ingobulla+2008-09-03 23:40:46--
Hallo,

ich habe folgendes Shell-Kommando:

Code: (dl )
  sed -e 's/\([^:alnum:_]\)Nd\([^:alnum:_]\)/\1Rev_Nd\2/g' 

Es wird also Nd durch Rev_Nd ersetzt, falls Nd von Zeichen umgeben ist, die weder alphanumerisch noch "_" sind.

Falsch: Es wird ersetzt, wenn es von Zeichen umgeben ist, die weder ":", noch "a", "l", "n", "u", "m" oder "_" sind.

Du möchtest :alnum: noch einmal in eckige Klammern setzen, vermute ich.

Zu Deiner Frage: Vielleicht mit \([^[:alnum:]_]\|^\) und entsprechend für $

Nimm doch lieber Perl ;)
<< >> 2 Einträge, 1 Seite



View all threads created 2008-09-04 01:40.