В 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, появилась новая возможность преобразования регистра строки.
- Преобразует первый символ любой строки в верхний регистр ^
- Преобразует всю строку в верхний регистр ^^
- Преобразует первый символ строки в строчный регистр ,
- Преобразует всю строку в строчный регистр. ,,
Символы Bash для преобразования регистра строк
Пример 1
Преобразование первого символа строки с помощью символа ^:
$ note='welcome'
$ echo $note
$ echo ${note^}
Пример 2:
Преобразование всей переменной bash в верхний регистр с помощью символа ^^:
$ note='welcome'
$ echo $note
$ echo ${note^^}
Пример 3:
Преобразование в нижний регистр с помощью символа ,,:
$ note='WELCOME'
$ echo ${note,,}
Заключение
В этой статье мы узнали, как конвертировать в прописные или строчные буквы в Linux.
Если у вас возникли вопросы, мы будем рады прояснить их для вас.