В этой заметке будет показано, как преобразовать строку в верхний регистр (заглавные буквы буквы, прописные буквы) в командной строке Linux.
Чтобы конвертировать строку в большие буквы независимо от её текущего регистра, используйте одну из следующих команд.
tr
echo "Hi all" | tr '[:lower:]' '[:upper:]' HI ALL
Внимание! Если вы хотите изменить регистр каких-либо букв кроме латиницы (национальные алфавиты, буквы с диакритическими знаками), то не используйте tr, а используйте любое другое решение, предложенное далее. Это связано с тем, что классическая Unix tr оперирует символами однобайтовой кодировки и не совместима с Unicode.
AWK
echo "Hi all" | awk '{print toupper($0)}' HI ALL
Bash
a="Hi all" echo "${a^^}" HI ALL
Начиная с Bash 5.1 имеется параметр преобразования U, который предназначен для перевода строки в верхний регистр:
${var@U}
Пример:
v="heLLo" echo "${v@U}" HELLO
sed
echo "Hi all" | sed -e 's/\(.*\)/\U\1/' HI ALL
Либо такой вариант:
echo "Hi all" | sed -e 's/\(.*\)/\U\1/' <<< "$a" HI ALL
Ещё один вариант:
echo "Hi all" | sed 's/./\U&/g'
Perl
echo "Hi all" | perl -ne 'print uc' HI ALL
Python
a="Hi all" b=`echo "print ('$a'.upper())" | python`; echo $b
Ruby
a="Hi all" b=`echo "print '$a'.upcase" | ruby`; echo $b
PHP
b=`php -r "print strtoupper('$a');"`; echo $b
NodeJS
b=`node -p "\"$a\".toUpperCase()"`; echo $b
Оболочка zsh
a="Hi all" echo $a:u
Связанные статьи:
- Как преобразовать строку в нижний регистр в Bash (100%)
- Как удалить newline (символ новой строки) из вывода команд и файлов в командной строке Linux (29.3%)
- Решение проблемы с ошибкой cannot load such file -- test/unit (LoadError) (26.1%)
- Как установить конкретную версию Ruby gem? (26.1%)
- Как запустить bundle install от root (26.1%)
- $Cfg['TempDir'] (./tmp/) недоступен в phpMyAdmin (РЕШЕНО) (RANDOM - 1.3%)