- Windows 11 24H2 hit by a brand new bug, but there's a workaround
- This Samsung OLED spoiled every other TV for me, and it's $1,400 off for Black Friday
- NetBox Labs launches tools to combat network configuration drift
- Navigating the Complexities of AI in Content Creation and Cybersecurity
- Russian Cyber Spies Target Organizations with Custom Malware
Converting between uppercase and lowercase on the Linux command line
Using awk
The awk command lets you do the same thing with its toupper and tolower options. The command in the script shown in the previous example could be done this way instead:
echo $dept | awk '{print toupper($0)}' >> depts
The reverse (switching to lowercase) would look like this:
echo $dept | awk '{print tolower($0)}' >> depts
Using sed
The sed (stream editor) command also does a great job of switching between upper- and lowercase. This command would have the same effect as the first of the two shown above.
echo $dept | sed 's/[a-z]/U&/g' >> depts
Switching from uppercase to lowercase would simply involve replacing the U near the end of the line with an L.
echo $dept | sed 's/[A-Z]/L&/g' >> depts
Manipulating text in a file
Both awk and sed also allow you to change the case of text for entire files. So, you just found out your boss wanted those department names in all lowercase? No problem. Just run a command like this with the file name provided:
$ awk '{print tolower($0)}' depts finance billing bookkeeping
If you want to overwrite the depts file, instead of just displaying its contents in lowercase, you would need to do something like this: