Shell Scripting: Convert Uppercase to Lowercase

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!

{ 1 comment… read it below or add one }

1 Lucas Vieites 02.18.09 at 11:28 am

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?

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tagged as: , , , , , , , , , ,

Previous post: Linux Iptables ip_conntrack: table full, dropping packet error and solution

Next post: FreeBSD Set a Default Route / Gateway