В Linux существует множество способов преобразования строки в верхний или нижний регистр.

Наиболее часто используемыми командами для изменения регистра являются tr, sed и awk.

Tr – самая простая команда для этой задачи.

В Bash 4 есть определенные символы, которые позволяют преобразовать регистр строки.

В этом руководстве мы узнаем, как преобразовать строку в верхний и нижний регистр в системах Linux.

Использование команды TR для преобразования регистра

Команда tr используется для перевода и удаления символов.

С ее помощью можно преобразовать строку или содержимое файла в верхний или нижний регистр.

Она очень часто используется в скриптах bash.

[:upper:] или [A-Z] – обозначает верхний регистр

[:lower:] или [a-z] – обозначает нижний регистр.

Чтобы преобразовать любую строку из верхнего регистра в нижний, введите:

tr [:upper:] [:lower:]

Чтобы преобразовать любую строку из нижнего регистра в верхний, введите:

tr a-z A-Z

Например, чтобы преобразовать каждую букву в строке ”welcome” в заглавную, введите:

$ echo welcome | tr [:lower:] [:upper:]

Например, можно использовать команду tr в скриптах bash для преобразования строки в нижний регистр

!/bin/bash
 y="WELCOME"
 val=$(echo $y | tr '[:upper:]' '[:lower:]')
 string="$val linux"
 echo $string

Чтобы преобразовать содержимое текстового файла с именем file.txt из нижнего регистра в верхний, выполните следующие действия.

$ tr a-z A-Z < ./file.txt

И наоборот, чтобы преобразовать содержимое файла в нижний регистр, введите

$ tr A-Z a-z < ./myfile.txt

Использование SED для преобразования регистра

Команда Sed используется в Linux для разбора и преобразования текста.

С помощью sed можно преобразовать регистр строки.

Используя sed, чтобы преобразовать строку в верхний регистр, введите

echo  "hello world"  | sed 's/[a-z]/\U&/g'

a-z] – это регулярное выражение, которое будет соответствовать строчным буквам. \U& используется для замены строчных букв на заглавные.

Теперь перейдем на строчные буквы, используя следующую команду:

echo "HELLO WORLD " | sed 's/[A-Z]/\L&/g'

[A-Z] – это регулярное выражение, которое будет соответствовать заглавным буквам. \L& используется для замены прописных букв на строчные.

Чтобы преобразовать текст из файла в верхний регистр с помощью инструмента командной строки sed, мы используем следующий шаблон:

$ sed 's/[a-z]/\U&/g' < ./myfile.txt

Можно также использовать выражение ‘s/.*/\L&/g’ для того же самого.

Использование AWK для преобразования регистра

Команда awk использует функции tolower и toupper для преобразования регистра строки.

Чтобы преобразовать строку в верхний регистр, введите

string="hello world"
echo "$string" | awk '{print toupper($0)}'

Чтобы преобразовать все содержимое текстового файла с именем file.txt в верхний регистр, используйте:

$ awk '{ print toupper($0) }' ./file.txt

Аналогично для преобразования в нижний регистр используйте:

$ awk '{print tolower($0)}' ./file.txt

Преобразование регистра с помощью символов в Bash

Начиная с версии 4 Bash, появилась новая возможность преобразования регистра строки.

  1.  Преобразует первый символ любой строки в верхний регистр ^
  2.  Преобразует всю строку в верхний регистр ^^
  3.  Преобразует первый символ строки в строчный регистр ,
  4.  Преобразует всю строку в строчный регистр. ,,

Символы Bash для преобразования регистра строк

Пример 1

Преобразование первого символа строки с помощью символа ^:

$ note='welcome'
$ echo $note
$ echo ${note^}

Пример 2:

Преобразование всей переменной bash в верхний регистр с помощью символа ^^:

$ note='welcome'
$ echo $note
$ echo ${note^^}

Пример 3:

Преобразование в нижний регистр с помощью символа ,,:

$ note='WELCOME'
$ echo ${note,,}

Заключение

В этой статье мы узнали, как конвертировать в прописные или строчные буквы в Linux.

Если у вас возникли вопросы, мы будем рады прояснить их для вас.

 

Поделитесь статьей:

Добавить комментарий