Een string met hoofdletters maken

Bash:
Een string met hoofdletters maken

Hoe te:

In Bash kun je strings op verschillende manieren kapitaliseren. Hier is een klassieke aanpak met awk:

echo "hallo wereld" | awk '{for(i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) substr($i,2)} 1'

Uitvoer:

Hallo Wereld

Of, met puur Bash:

string="hallo wereld"
capitalize() {
  echo "$1" | while IFS=" " read -r word; do 
    echo -n "${word^} " 
  done
  echo
}
capitalize "$string"

Uitvoer:

Hallo Wereld 

Diepere Duik:

Vroeger was ‘awk’ het gereedschap bij uitstek voor tekstmanipulatie. Het is robuust maar minder intuïtief voor beginners. Met de evolutie van Bash, vooral vanaf versie 4, zijn mogelijkheden zoals stringmanipulatie verbeterd.

De awk methode is klassiek, het itereert door elk woord en maakt de eerste letter een hoofdletter. Puur Bash gebruikt parameteruitbreiding: ${word^} maakt de eerste letter van $word een hoofdletter. Parameteruitbreiding is direct en snel, en vermindert de noodzaak van externe tools.

Waarom doet dit ertoe? Wel, strings kapitaliseren is een veelvoorkomende behoefte bij programmeertaken. Juiste kapitalisatie kan cruciaal zijn voor gebruikersinterfaces of gegevensverwerking waar de presentatie belangrijk is. Weten hoe je dit in je shell kunt doen, kan de dag redden.

Zie Ook: