Как выполнить экранирование символов в регулярных выражениях?
Привет, Хабр!
Есть 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 команды, в одной будет "/", в другой "%".
Спасибо всем за помощь.