Ersten Buchstaben in ein GROSSEN umwandeln 15. Juli 2006
Manchmal ist es nötig in einem Shell-Skript einen String so zu bearbeiten, dass der erste Buchstabe durch den jeweiligen großen ersetzt wird. Es ist gar nicht so leicht. Ich habe versucht es in einem SED-Befehl hinzubekommen. Es ist mir leider nicht gelungen. Wer mich kennt, weiss aber das ich nie aufgebe. Also habe ich folgende Lösung in der Skriptsprache BASH:
#
# Das erste Zeichen des Strings $kleiner_string extrahieren
#
erstes_zeichen=$(echo ${kleiner_string} | sed -e ’s/\([abcdefghijklmnopqrstuvwxyz]\).*/\1/’)#
# Den Rest des Strings $kleiner_string extrahieren
#
rest_von_kleiner_string=$( echo ${kleiner_string} | sed -e ’s/^’${erstes_zeichen}’//’ )#
# Nun das $erste_zeichen in den jeweiligen Großbuchstaben umwandeln
#
erstes_zeichen_gross=$(echo ${erstes_zeichen} | tr [a-z] [A-Z] )#
# Zum Schuß den Strings mit dem großen ersten Zeichen wieder zusammensetzen
#
grosser_string=${erstes_zeichen_gross}${rest_von_kleiner_string}
In der Variablen $grosser_string ist nun der Wert der Variablen $kleiner_string mit großem Anfangsbuchstaben. Ziel erreicht.
Um diese Funktionalität in Shell-Skripten noch besser nutzen zu können, bietet es sich an eine Funktion zu definieren. Die Funktion könnte so aussehen:
#
# Funktion zum umwandeln des ersten Buchstaben in den jeweiligen grossenfunction first_char_2_upper {
#
# Parameter der Funktion abfragen
kleiner_string=$1#
# kontrollieren ob Funktion mit Parameter aufgerufen wurde
if [ ${#kleiner_string} -gt 0 ] ; thenerstes_zeichen=$(echo ${kleiner_string} | sed -e ’s/\([abcdefghijklmnopqrstuvwxyz]\).*/\1/’)
rest_von_kleiner_string=$( echo ${kleiner_string} | sed -e ’s/^’${erstes_zeichen}’//’ )
erstes_zeichen_gross=$(echo ${erstes_zeichen} | tr [a-z] [A-Z] )
#
# Feritgen String ausgeben und Funktion mit Erfolgs-Rueckgabewert beenden
#
echo “${erstes_zeichen_gross}${rest_von_kleiner_string}”
return 0else
# Funktion mit Fehler-Rueckgabewert beenden
return 1
fi
}
Der Aufruf dieser Funktion ist nun ganz leicht. Hier ein Beispiel-Skript:
#!/bin/bash
#
## Definition der Funktionen
#
# Funktion zum umwandeln des ersten Buchstaben in den jeweiligen grossen
#function first_char_2_upper {
#
# Parameter der Funktion abfragen
kleiner_string=$1#
# kontrollieren ob Funktion mit Parameter aufgerufen wurde
if [ ${#kleiner_string} -gt 0 ] ; thenerstes_zeichen=$(echo ${kleiner_string} | sed -e ’s/\([abcdefghijklmnopqrstuvwxyz]\).*/\1/’)
rest_von_kleiner_string=$( echo ${kleiner_string} | sed -e ’s/^’${erstes_zeichen}’//’ )
erstes_zeichen_gross=$(echo ${erstes_zeichen} | tr [a-z] [A-Z] )
#
# Feritgen String ausgeben und Funktion mit Erfolgs-Rueckgabewert beenden
#
echo “${erstes_zeichen_gross}${rest_von_kleiner_string}”
return 0else
# Funktion mit Fehler-Rueckgabewert beenden
return 1
fi
}#
# Programm
#variable=”mein Skript”
gross=$(first_char_2_upper “$variable”)
echo “Variable vorher: $variable”
echo “Variable nacher: $gross”#
# Ende des Skripts
#
Ich hoffe ich konnte verständlich zeigen wie es funktioniert.

Ihr Feedback ist erwünscht!