2014-11-07 2 views
-1

я нашел следующую команду, чтобы быть отлично подходит для поиска и замены слова в исходном коде на сервере через SSH,Найти поиск и замену с использованием СЭД

, где я хочу, чтобы заменить слово «слово» с «replacement_word 'в папке' folder '.

# find <folder> -type f -exec sed -i 's/<word>/<replacement_word>/g' {} \; 

Однако, как я могу написать это, если «слово» Im ищет содержит обратную косую черту т.е. «/ Dev»

И как я могу найти и заменить большую часть текста,

a) Точно соответствует b) Содержит совпадения «как».

+2

Что это связано с ssh? Вы можете либо сбежать с косой черты '\ /', либо использовать другой маркер для команды 's ///' ('' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' '' '). –

+0

Если ваши значения word/replacement_word находятся в переменной, для вашего sed потребуется двойные кавычки. Я согласен с Илином. # find -type f -exec sed -i "s # # #g" {} \; –

+0

Спасибо @EtanReisner, так что, например, была бы точная команда для замены '/ Dev' на '/ Development'? – Mark

ответ

0

Любой набор символов разделителя может использоваться в команде s///, а не только в традиционном /.

Таким образом, вы можете использовать другой маркер для s/// команды (s!!! или s,,, оба довольно часто), или вы можете просто слеш \/.

Смежные вопросы