Преобразование строки в верхний регистр

Bash:
Преобразование строки в верхний регистр

Как это сделать:

В Bash есть несколько способов преобразования строк в текст с заглавными буквами. Вот классический подход с использованием awk:

echo "hello world" | awk '{for(i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) substr($i,2)} 1'

Вывод:

Hello World

Или с использованием чистого Bash:

string="hello world"
capitalize() {
  echo "$1" | while IFS=" " read -r word; do 
    echo -n "${word^} " 
  done
  echo
}
capitalize "$string"

Вывод:

Hello World 

Подробный разбор:

В старые времена awk был основным инструментом для манипуляции с текстом. Он надежен, но менее интуитивно понятен для начинающих. С развитием Bash, особенно начиная с версии 4, возможности, такие как манипуляция со строками, улучшились.

Способ с использованием awk классический, он предполагает итерацию по каждому слову и преобразование первой буквы в заглавную. Чистый Bash использует расширение параметров: ${word^} преобразует первую букву $word в заглавную. Расширение параметров прямо и быстро, что сокращает количество необходимых внешних инструментов.

Почему это важно? Ну, преобразование строк в текст с заглавными буквами - общая потребность в программных задачах. Правильное использование заглавных букв может быть критически важным для пользовательских интерфейсов или обработки данных, где важна презентация. Знание того, как это сделать в вашем shell, может выручить в нужный момент.

Смотрите также: