[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Problem mit sed und y///



Hallo,

ich möchte in vielen Dateien in einer bestimmten Zeile alls Großbuchstaben durch Kleinbuchstaben ersetzen. Mit tr geht das ganz einfach:
***
$ echo "ASDF" | tr "A-Z" "a-z"
asdf
***

Für sed gibt es mit y/// einen ähnlichen Befehl, aber so richtig zufrieden bin ich damit nicht:
***
$ echo "ASDF" | sed 'y/A-Z/a-z/'
aSDF
$ echo "ASDF" | sed 'y/[A-Z]/[a-z]/'
aSDF
$ echo "ASDF" | sed 'y/[:upper:]/[:lower:]/'
ASDF
$ echo "ASDF" | sed 'y/[[:upper:]]/[[:lower:]]/'
ASDF
***

So hingegen funktioniert es:
***
$ echo "ASDF" | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'
asdf
***

Beide Zeichensets auszuschreiben ist aber umständlich, anfällig für Tippfehler und schwer zu durchschauen. Gibt es nicht doch vielleicht eine Möglichkeit, hier Bereichsangaben ("[A-Z]") oder Klassen ("[:upper:]") zu verwenden?

Schönen Gruß

Andreas

Attachment: pgpz7jOlHqPo_.pgp
Description: PGP signature


Reply to: