Oto wiele rozwiązań:
Do upercasera z perl, tr, sed i awk
perl -ne
perl -npe
perl -npe
perl -npe
tr
sed y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
sed
sed
awk
Małe litery z perl, tr, sed i awk
perl -ne
perl -npe
perl -npe
perl -npe
tr
sed y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
sed
sed
awk
Skomplikowany bash na małe litery:
while read v;do v=${v//A/a};v=${v//B/b};v=${v//C/c};v=${v//D/d};v=${v//E/e};v=${v//F/f};v=${v//G/g};v=${v//H/h};v=${v//I/i};v=${v//J/j};v=${v//K/k};v=${v//L/l};v=${v//M/m};v=${v//N/n};v=${v//O/o};v=${v//P/p};v=${v//Q/q};v=${v//R/r};v=${v//S/s};v=${v//T/t};v=${v//U/u};v=${v//V/v};v=${v//W/w};v=${v//X/x};v=${v//Y/y};v=${v//Z/z};echo "$v";done
Skomplikowany bash na wielkie litery:
while read v;do v=${v//a/A};v=${v//b/B};v=${v//c/C};v=${v//d/D};v=${v//e/E};v=${v//f/F};v=${v//g/G};v=${v//h/H};v=${v//i/I};v=${v//j/J};v=${v//k/K};v=${v//l/L};v=${v//m/M};v=${v//n/N};v=${v//o/O};v=${v//p/P};v=${v//q/Q};v=${v//r/R};v=${v//s/S};v=${v//t/T};v=${v//u/U};v=${v//v/V};v=${v//w/W};v=${v//x/X};v=${v//y/Y};v=${v//z/Z};echo "$v";done
Proste bash na małe litery:
while read v;do echo "${v,,}"; done
Proste bash na wielkie litery:
while read v;do echo "${v^^}"; done
Zauważ, że $ {v,} i $ {v ^} zmieniają tylko pierwszą literę.
Powinieneś go używać w ten sposób:
(while read v;do echo "${v,,}"; done) < input_file.txt > output_file.txt
tr
polecenie? Czasami jest to bardziej odpowiednie niżsed
.