Перетворення рядка у нижній регістр

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 найкращі для простих скриптів, бо вони швидкі і не вимагають зовнішніх програм.

Також подивіться