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?