mirror of
https://github.com/jbranchaud/til
synced 2026-01-02 22:58:01 +00:00
884 B
884 B
Transform Text To Lowercase
I was reading through setup.sh in
dkarter/dotfiles
and noticed this function for converting a given bit of text to all lowercase
letters.
lowercase() {
echo "$1" | sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/"
}
It's an interesting use of sed, but it made me wonder if tr was a better
tool for this job. I looked into it and tr is better suited to the task, more
expressive, and also compatible across Mac and Linux.
Here is what it looks like with tr:
lowercase() {
echo "$1" | tr '[:upper:]' '[:lower:]'
}
This has the added benefit of working across all kinds of UTF-8 characters.
$ echo "ΑΛΦΑΒΗΤΟ ΕΛΛΑΔΑ" | tr '[:upper:]' '[:lower:]'
αλφαβητο ελλαδα
See man tr for more details.