String in der Shell in Groß- oder Kleinbuchstaben wandeln

Mitunter will man in einem Shell-Script einen String ist Groß- oder Kleinbuchstaben wandeln. Das lässt sich recht einfach mit dem Kommando tr bewerkstelligen, welches auf vielen Systemen verfügbar ist.

So werden Kleinbuchstaben in Großbuchstaben gewandelt:

VAR=öäüß
echo $VAR
VAR=`echo $VAR|tr "[:lower:]" "[:upper:]"`
echo $VAR

Durch die Verwendung von [:lower:] und [:upper:] werden auch Umlaute berücksichtigt, was bei [a-z] bzw. [A-Z] nicht der Fall wäre.

Die umgekehrte Richtung funktioniert logischer Weise so:

VAR=GROSSÄÜÖ
echo $VAR
VAR=`echo $VAR|tr "[:upper:]" "[:lower:]"`
echo $VAR

2 Gedanken zu „String in der Shell in Groß- oder Kleinbuchstaben wandeln

  1. Gerhard

    Ist aber, wenn ich nur einen oder mehrere Anfangsbuchstaben umwandeln will, zu umständlich.Gibt es da kein Script für einen Shortcut?

  2. romeofox Beitragsautor

    Der Artikel ist ja schon steinalt 😉

    Die aktuelle Bash hat Funktionen dafür:

    $ foo=bar
    $ echo ${foo^}
    Bar
    $ echo ${foo^^}
    BAR

    Unterstützt die Shell das nicht, kann man sed oder Perl zu Hilfe nehmen:

    $ echo $foo | sed 's/./\u&/'
    Bar
    $ echo $foo | perl -ne 'print ucfirst($_)'
    Bar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.