Bash:
Поиск длины строки
Как:
Символ #
выполняет эту задачу в bash. Используйте его вместе с расширением параметра. Вот как:
my_string="Привет, мир!"
string_length=${#my_string}
echo $string_length
Пример вывода:
12
Подробнее
В старые времена люди использовали expr
или внешние инструменты вроде wc -m
, но встроенные функции Bash изменили правила игры. Синтаксис ${#var}
является частью расширения параметра, введенного в Bash. Он быстр и эффективен, потому что не создает подоболочку и не вызывает внешнюю программу.
Альтернативы? Конечно, они есть:
expr length "$my_string"
дает вам тот же результат, но это довольно старомодно.echo -n $my_string | wc -m
используетwc
для подсчета, но это избыточно для простых задач.
Детали, детали… Когда вы используете ${#my_string}
, по умолчанию вы получаете длину в байтах. Если ваш текст использует юникод, вам, возможно, придется учитывать многобайтовые символы. Вот тут все становится сложнее.
Смотрите также
Погрузитесь в man-страницы с помощью man bash
, чтобы узнать подробности о расширении параметров. Для тех, кто интересуется обработкой строк за пределами базового ASCII, Подробное руководство по скриптованию в Bash предлагает некоторые решения: https://www.tldp.org/LDP/abs/html/. И ради любви к обучению, следите за https://www.gnu.org/software/bash/manual/, чтобы узнавать последнее о Bash.