2013-04-12 125 views
0

我想運行一個腳本來替換很多.php文件中的一段代碼。我需要更換:轉義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

我將在哪裏運行該命令,每個文件夾都帶有index.php約120個文件夾。 – Sean

+0

它在我看來只需要用1024和600替換650用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" {} \;