ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как найти длину строки в Bash [Совет]

Bash Heredoc

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

К счастью, получить длину строки в bash очень просто. Допустим, у вас есть строка с именем my_string. Ее длину можно извлечь как:

${#my_string}

 

Вот пример, чтобы лучше объяснить:

destroyer@andreyex:~$ my_string="destroyer"
destroyer@andreyex:~$ echo "длина ${#my_string}"
длина 9

 

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

destroyer@andreyex:~$ my_string="destroyer"
destroyer@andreyex:~$ length=${#my_string}
destroyer@andreyex:~$ echo "Длина строки $length"
Длина строки 9

 

Как и большинство других вещей в Linux, это не единственный способ вычисления длины строк в Bash.

 

Получить длину строки в bash с помощью команды expr

Давайте посмотрим на некоторые другие команды, которые могут помочь вам проверить длину строки в bash.

Одна из этих команд – команда expr. У него есть несколько опций, которые полезны для строковых опций. Среди них length, вы получите длину строки.

destroyer@andreyex:~$ expr length "моя строка"
10

 

Поскольку команда expr выводит длину, вы должны сохранить ее в переменной, используя подстановку команд.

#!/bin/bash

str="моя строка"
length=$(expr length "$str")
echo "Длина моей строки $length"

 

Теперь, если вы запустите этот сценарий оболочки bash, он напечатает длину:

destroyer@andreyex:~$ bash string.sh 
Длина моей строки 10

 

Используйте awk, чтобы получить длину строки

AWK – универсальная команда для редактирования текста в командной строке Linux. Вы также можете использовать его для расчета длины строки.

Вам нужно будет использовать команду echo, а затем использовать перенаправление канала, чтобы проанализировать ее с помощью команды awk:

destroyer@andreyex:~$ echo "моя строка" | awk '{print length}'
10

 

Как видите, запомнить синтаксис непросто , если вы не знакомы с основами работы с командами awk.

 

Использование команды wc для вычисления длины строки

Другой способ получить длину строки в Linux – использовать команду wc. Теперь команда wc используется для подсчета количества строк, символов в файле.

Вы можете повторить строку и передать ее команде wc. Опция -m дает количество символов.

destroyer@andreyex:~$ echo -n "моя строка" | wc -m
10

 

Обратите внимание на вариант -n с командой echo? Это важно, потому что echo автоматически добавляет новый символ строки \n в конец и увеличивает длину строки на единицу. С Опцией -n команда echo не добавляет новый строчный символ.

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

#!/bin/bash

str="моя строка"
length=$(echo -n "моя строка" | wc -m)
echo "Длина моей строки $length"

 

Лично мы предпочитаем $ {# string} для получения длины строки. Легче запомнить.

Как насчет вас? Какой метод вы предпочитаете?

Exit mobile version