Мне трудно понять, как использовать sed
для поиска и замены строк, содержащих символ /
в текстовом файле /etc/myconfig
.
Например, в моем существующем текстовом файле у меня есть:
myparam /path/to/a argB=/path/to/B xo
и я хочу, чтобы это было заменено на:
myparam /path/to/c argB=/path/to/D xo
Я попытался сделать это в bash:
line='myparam /path/to/a argB=/path/to/B xo'
line_new='myparam /path/to/c argB=/path/to/D xo'
sed -i 's/$line/$line_new/g' /etc/myconfig
Но ничего не происходит.
Попытка
grep -rn "$line" /etc/myconfig
возвращает меня 'myparam /path/to/a argB=/path/to/B xo'
.
Каков правильный способ выражения моей команды sed
для выполнения этого поиска и замены и правильной работы с командой /
? (Я считаю, что символ /
в моих строках - это те, которые дают мне проблему, потому что я использовал аналогичную команду sed
для поиска и замены другой строки в текстовом файле без проблем, и эта строка не имеет /
.