zaLinux.ru

Как преобразовать строку в верхний регистр в Bash


В этой заметке будет показано, как преобразовать строку в верхний регистр (заглавные буквы буквы, прописные буквы) в командной строке 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

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *