ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Как найти длину строки в 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