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, может выручить в нужный момент.
Смотрите также:
- Bash руководство по расширению параметров: https://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion
- Введение в
awk
и его использование: https://www.gnu.org/software/gawk/manual/gawk.html - Обсуждения на StackOverflow о манипуляции с текстом в Bash: https://stackoverflow.com/questions/tagged/bash+string+capitalization