Ubuntu заменить выражение в dir и все подкаталоги

как я могу заменить выражение, которое имеет косую черту, на другое во всех dirs и subdirs?

я использовал это, чтобы найти: grep -rnw "/var/www/site" -e "app/COD1"

и теперь я хочу заменить: "app / COD1" на "app2 / COD2" во всех файлах.

Я компакт-диск в dir/var/www / сайт и попытался с:sed -i 's,app/COD1,app2/COD2,g' *
и с sed -i 's/'app/ABC'/'apps/ABC'/g' *
не повезло...

6
задан danny2015
11.12.2022 1:03 Количество просмотров материала 2379
Распечатать страницу

2 ответа

вам нужно -e опция для указания команды в командной строке. Учитывая это, для меня работает:

$ cat file.txt
app/COD1
app/COD2
app2/COD1
app/COD1
app/COD1
$ sed -i -e "s,app/COD1,app2/COD2,g" file.txt
$ cat file.txt
app2/COD2
app/COD2
app2/COD1
app2/COD2
app2/COD2

использование обратных слешей также работает, в случае, если вы заменяете что-то, что может иметь запятые (или любой разделитель, который вы выбираете):

$ sed -i -e "s/app\/COD1/app2\/COD2/" file.txt
0
отвечен blm 2022-12-12 08:51
grep -rl 'app/ABC' /opt/apps/ABC | xargs sed -i -e "s,app/ABC,apps/ABC,g"
0
отвечен danny2015 2022-12-12 11:08

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх