Найти и заменить строку на "/" рекурсивно в каталогах в RHEL 7.4 - PullRequest
0 голосов
/ 12 мая 2018

Я должен найти и заменить все вхождения строки во всех файлах /eOffice/eofficev6 до /eOffice/SAPS/eofficev6 рекурсивно в каталоге в RHEL 7.4.

Проблема в том, что я использую sed -i, но моя строкатакже содержит / косая черта.

Как заменить все строки, имеющие /?

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

У вас есть два способа достичь того, что вы хотите.

One: Escape (EG. sed -i "s/\/eOffice\/eofficev6/\/eOffice\/SAPS\/eofficev6/" file).

Два: изменить разделитель (например, sed -i "s|/eOffice/eofficev6|/eOffice/SAPS/eofficev6|" file).

0 голосов
/ 12 мая 2018

Вы могли бы сделать

sed -i 's/\(\/eOffice\)\(\/eofficev6\)/\1\/SAPS\2/' input_file_name

Детали "/eOffice" и "eofficev6" сгруппированы, а "SAPS" вставлен между ними.

Например, если введено:

/eOffice/eofficev6

вывод будет

/eOffice/SAPS/eofficev6

Прямые косые черты экранируются с помощью \ s.

Или без группировки просто,

sed -i 's/\/eOffice\/eOfficev6/\/eOffice\/SAPS\/eOfficeb6/' input_file
...