Q. How do I convert uppercase words to lowercase or vise versa under BASH shell? I've a small shell script and I'd like to convert all incoming user input to lowercase using a shell script.
A. Use tr command to convert all incoming text / words / variable data from upper to lower case or vise versa (translate all uppercase characters to lowercase).
Convert all text file data from upper to lowercase:
Type the following command at shell:
$ tr '[:upper:]' '[:lower:]' < input.txt > output.txt
Convert variable data from upper to lowercase:
$ echo $VAR_NAME | tr '[:upper:]' '[:lower:]'
$ echo $VAR_NAME | tr '[:lower:]' '[:upper:]'
Recommended readings:
=> See tr command shell scripting example for more information.
Sample Shell Script
#!/bin/bash # get filename echo -n "Enter File Name : " read fileName # make sure file exits for reading if [ ! -f $fileName ]; then echo "Filename $fileName does not exists" exit 1 fi # convert uppercase to lowercase using tr command tr '[A-Z]' '[a-z]' < $fileName
Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our daily email newsletter to make sure you don't miss a single tip/tricks. Subscribe to our weekly newsletter here!
- Email FAQ to a friend
- Printable version
- Rss Feed
- Last Updated: 4-30-08

{ 1 comment… read it below or add one }
This work fine when using latin characters, but not when using Unicode characters. For example a string with Cyrillic characters (”Английский”) doesn’t get converted. Any tips on how to do that?