Portál AbcLinuxu, 10. května 2025 11:31
VAR="Červená barva není to pravé ořechové." VAR="${VAR^^}" echo "$VAR" #Výsledek: ČERVENá BARVA NENí TO PRAVé OřECHOVé.Díky
Řešení dotazu:
echo "Červená barva není to pravé ořechové." | tr 'a-zěščřžýáíéůúďťňóöëäĺôêâ' 'A-ZĚŠČŘŽÝÁÍÉŮÚĎŤŇÓÖËÄĹÔÊÂ'
echo "Červená barva není to pravé ořechové. ‚déjà vu, " | tr 'a-zěščřžýáíéůúďťňóöëäïẅŵĺôêâîûàèìòùçœűőÿŷ' 'A-ZĚŠČŘŽÝÁÍÉŮÚĎŤŇÓÖËÏẄŴÄĹÔÊÂÎÛÀÈÌÒÙÇŒŰŐŸŶ'
echo "Červená barva není to pravé ořechové. ‚déjà vu, " | tr 'a-zěščřžýáíéůúďťňóöëäïĺôêâîûàèìòùçœűő' 'A-ZĚŠČŘŽÝÁÍÉŮÚĎŤŇÓÖËÏÄĹÔÊÂÎÛÀÈÌÒÙÇŒŰŐ'
echo 'Déjà vu, zďářící Eyjafjallajökulle! Ну, погоди!' | python -c 'import sys; sys.stdout.write(sys.stdin.read().decode("utf-8").upper().encode("utf-8"))'
iconv
, tak za normálnější považuji spíš něco jako:
echo 'Déjà vu, zďářící Eyjafjallajökulle! Ну, погоди!' | php -R 'echo mb_strtoupper($argn,"UTF-8");'A nebude tam ani znak navíc…
echo 'Déjà vu, zďářící Eyjafjallajökulle! Ну, погоди!' |sed -e 's/\(.*\)/\U\1/' echo 'Déjà vu, z#á#ící Eyjafjallajökulle! ##, ######! ##, ######!' |awk '{ print toupper ($0) }'
LC_LOCALE, LC_CTYPE alebo LC_ALL
(samozrejme musia byt nastavene podla jazyka textu)
echo "Červená barva není to pravé ořechové."| LC_ALL=cs_CZ tr '[:lower:]' '[:upper:]'
tr
.
tr
asi ještě nebyl pro Unicode kompletně upraven.
echo -e 'Déjà vu, zďářící Eyjafjallajökulle! Ну, погоди!' | php -r 'echo mb_strtoupper(stream_get_contents(fopen("php://stdin", "r")),"UTF-8");'To výše uvedené nezpracuje dobře řádkování, bo
-R
+ $argn
funguje dle dokumentace, ale nemusí to být na první pohled jasné.echo -e 'Déjà vu,\nНу, погоди!' | php -R 'echo mb_strtoupper($argn,"UTF-8");vs.
echo -e 'Déjà vu,\nНу, погоди!' | php -r 'echo mb_strtoupper(stream_get_contents(fopen("php://stdin", "r")),"UTF-8");'Ale furt je to kulturnější než ta hadica
tr
dopředu.
tr '[:lower:][:upper:][:digit:]' '[:digit:][:lower:][:upper:]'by mezi sebou přeházelo číslice a [ASCII] písmena, což teď nesmyslně nelze.
tr
považuji za nevyhovující. Raději bych pro tento účel použil jiný nástroj, se kterým takové potíže nejsou. Sed vypadá jako skvělá volba. Také proto, že nemusím chtít konvertovat celý soubor, ale jen některé části.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.