Konvertere en streng til små bokstaver

Bash:
Konvertere en streng til små bokstaver

How to:

Bruk tr, awk, eller shell parameter expansion til å gjøre om store bokstaver til små. Her er noen eksempler:

# Bruk tr
echo "Hei Verden" | tr '[:upper:]' '[:lower:]'

# Bruk awk
echo "Hei Verden" | awk '{print tolower($0)}'

# Bruk shell parameter expansion i Bash 4.0 eller nyere
text="Hei Verden"
echo "${text,,}"

Eksempelutskrift for hvert kommando vil være:

hei verden

Deep Dive

Før tr og awk, var alternativene grunnleggende. Du kunne skrevet ditt eget skript for å itere over hver bokstav, noe som ville være tregt. I Bash, før versjon 4, fantes ikke innebygde alternativer for å endre store bokstaver til små.

Alternativer inkluderer moderne verktøy som sed eller programmeringsspråk som Python og Perl, som har denne funksjonaliteten innebygd. Med Bash 4.0+, gjorde ${text,,} og dens relaterte patterner det mulig å unngå eksterne verktøy for slike string-operasjoner.

Litt om implementering av disse løsningene:

  • tr er et kraftig og raskt program for tegnoversetting.
  • awk er et tekstbehandlingsverktøy som også kan utføre komplekse operasjoner på tekst.
  • Shell parameter expansion er integrert i Bash, som betyr ingen ekstern prosessering – raskere og mer effektivt.

See Also