Reputation: 81
How do i create a program that converts uppercase letters to lower case and vice versa at same time from a given file? I know how to convert each independently
#!/bin/sh
#Program convert upper to lower
cat $1 | tr '[:upper:]' '[:lower:]'
#!/bin/sh
#Program convert lower to upper
cat $1 | tr '[:lower:]' '[:upper:]'
e.g
hEllo to HeLLO
Upvotes: 4
Views: 3908
Reputation: 3417
Since Bash 4.0 there is a double tilde parameter expansion ${parameter~~pattern}
that toggles the case of all letters in parameter. An example:
echo "${1~~}"
However, as far as I know, this mechanism is not documented. Hence I do not recommend it for a production use. It is a bad practice to rely on undocumented features.
Upvotes: 0
Reputation: 3721
You can readily combine your two lines:
$ tr '[:upper:][:lower:]' '[:lower:][:upper:]' <<< "hEllo"
HeLLO
Upvotes: 5