Поиск длины строки

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.