Bash:
Перетворення рядка у нижній регістр
Як?
# Використовуємо 'tr' для перетворення рядків у нижній регістр
echo "HELLO World!" | tr '[:upper:]' '[:lower:]'
# Вивід: hello world!
# Ще один спосіб - команда 'awk'
echo "HELLO World!" | awk '{print tolower($0)}'
# Вивід: hello world!
# Використання 'sed'
echo "HELLO World!" | sed 's/.*/\L&/'
# Вивід: hello world!
# Перетворення за допомогою Bash вбудованих функцій
my_string="HELLO World!"
echo "${my_string,,}"
# Вивід: hello world!
Поглиблено
У Bash було декілька способів робити перетворення рядка у нижній регістр. Історично, команди як tr
, awk
, і sed
використовувалися, оскільки ранні версії Bash не мали вбудованої підтримки цього.
tr
- одна з найдавніших утиліт для роботи з текстом, вона змінює або видаляє символи. awk
є скриптовою мовою для обробки даних, і вона може викликати функції обробки рядків. sed
- потоковий редактор для фільтрації та перетворення тексту.
З Bash 4.0, введено нову функціональність, ${variable,,}
та ${variable^^}
для вбудованої підтримки перетворення регістру рядка.
Кожен інструмент має свої особливості. tr
не працює з змінними напряму і не приймає файл як аргумент. awk
і sed
потужніші, але вимагають більш складної синтаксис та розуміння. Вбудовані функції Bash найкращі для простих скриптів, бо вони швидкі і не вимагають зовнішніх програм.