Bash:
Видалення лапок зі строки
Як це зробити:
Bash пропонує кілька способів видалення лапок з рядків. Ось деякі швидкі приклади:
#!/bin/bash
# Використання заміни у змінних для видалення як одиночних, так і подвійних лапок
STRING="\"Привіт, Світе!\""
echo ${STRING//\"}
# Використання `tr` для видалення лапок
STRING="'Привіт, Світе!'"
echo $STRING | tr -d "\'"
# Використання `sed` для видалення лапок
STRING="\"Привіт, Світе!\""
echo $STRING | sed 's/"//g'
Приклад виводу:
Привіт, Світе!
Привіт, Світе!
Привіт, Світе!
Поглиблений розбір
Ще в давні часи, команди Unix на зразок tr
та sed
були основними інструментами для обробки тексту. Вони досі використовуються сьогодні через їхню гнучкість і потужність в обробці текстових трансформацій, наприклад, видалення лапок. Вони є невід’ємною частиною арсеналу будь-якого скриптера оболонки.
Bash, з того часу, еволюціонував, і заміна змінних додала ще один шар простоти для маніпуляцій з рядками в малому масштабі. Це дозволяє вам уникнути використання зовнішніх бінарних файлів, роблячи ваші сценарії трохи ефективнішими.
Хоча tr
відмінно підходить для видалення символів, воно не може обробляти більш складні шаблони. Sed
, з іншого боку, використовує регулярні вирази, тому іноді це може бути занадто складно і можливо повільніше для простих операцій.
Вибір між цими методами залежить від вашого конкретного випадку. Якщо вам потрібно видалити різноманітні лапки, і ви вже знаходитесь у контексті Bash скрипта, використання заміни змінних є очевидним рішенням за простоти. Але якщо ви трансформуєте текстові потоки або дані кількох рядків, tr
та sed
будуть вашими друзями.
Дивіться також:
- Руководство GNU Bash, особливо розділи про Розширення параметрів і Розширення параметрів оболонки: https://www.gnu.org/software/bash/manual/
- Руководство команди
tr
: https://www.gnu.org/software/coreutils/manual/html_node/tr-invocation.html - Огляд редактора потоків
sed
: https://www.gnu.org/software/sed/manual/sed.html