Як виконати екранування символів в регулярних виразах
- Bash
- Регулярні вирази
- sed
є Linux
Є файл.
У ньому потрібно замінити рядок "text1 / text2 text3 / text4" на "text5".
Гугл підказав що питання вирішується за допомогою
"Sed '/ s / старе / нове / g' file.txt> file2.txt".
Але якщо «старе» містить символ "/" по отримуємо
sed: -e вираз # 1, символ 10: невідомий модифікатор до `s '.
Якщо містить пробіл, тоді
sed: -e вираз # 1, символ 6: незавершена команда `s '
Екранування за допомогою "" не допомогло. Рятуйте, хто може.
UPD. Перевірено спрацювало: "sed s% с / тар \ е% нове% g file.txt> file2.txt".
Виходить символ "" успішно екранує пробіл, але з "/" не справляється, тому "/" був замінений на "%". На жаль, в цьому випадку "%" перестає екрануватися. Але ніщо не заважає виконати 2 команди, в одній буде "/", в інший "%".
Спасибі всім за допомогу.
