2013-04-12 2 views
0

Я пытаюсь запустить скрипт, чтобы заменить раздел кода во многих файлах .php. Мне нужно заменить:Escaping Команда SED

`popupOpen(\'/home/open.php?c='.urlencode($row['id']).'&s=\', 650, 600)` 

с этим:

`popupOpen(\'/home/open.php?c='.urlencode($row['id']).'&s=\', 1024, 750)` 

Команда, я использую это:

find . -name "index.php" -print | xargs sed -i "s/popupOpen(\\\'\/home\/open.php?c='.urlencode\($row\['id']\).'\&s=\\\', 650, 600)/popupOpen(\\\'\/home\/open.php?c='.urlencode\($row\['id']\).'\&s=\\\', 1024, 750)/g" 

Я просто не могу показаться, чтобы избежать ее должным образом. Что мне не хватает?

+1

Ваш говорящий много файлов, но вы просто ищете 'index.php' –

+0

Где я буду запускать команду, имеет около 120 папок с индексом index.php. – Sean

+0

Мне кажется, что вам нужно заменить 650 только 1024 и 600 с помощью 750 – poiu2000

ответ

0

Вы можете обойтись без xargs:

find .name "index.php" -exec sed -i '' sed "whatever" {} \; 

и в этом случае я думаю, что это будет работать:

find . -name "index.php" -exec sed "s|popupOpen(\\\\'/home/open\.php\?c=\'\.urlencode(\\\$row\[\'id\'\])\.\'&s=\\\\', 650, 600)|popupOpen(\\\\'/home/open\.php\?c=\'\.urlencode(\\\$row\[\'id\'\])\.\'\&s=\\\\', 1024, 750)|g" {} \;