2012-11-30 38 views
-1

我有一個配置文件,我需要改變(再次)和線SED變線錯誤消息

set wrapper_code=C:\windows\drivers\cache 

我需要將其更改爲

set wrapper_code=/home/harry/solo/run 

我寫

cat Proxy.bat | sed -i.bk -e 's/\(^set wrapper_home\=\).*/\/home/'1${dbuser}'/gateway/service\' Proxy.bat 

我收到一條錯誤消息

sed: -e expression #1, char 37: unknown option to `s' 

如果您正在使用/爲圖案分離是sed什麼是錯我的代碼串

+0

無論誰用負面評論來標記我的問題。它看起來有點不公平,因爲這個論壇假設是關於問題的。必須證明我已經在開篇文章中做了研究,並且告訴我要保持這個問題是令人困惑的。你希望我在發佈我的問題之前告訴你我所做的一切嗎? – user1794918

+0

我認爲這個網站是假設是關於幫助,而不是一個評分系統,如果一個問題如果形成公式化或研究發佈一個類似的問題之前如何形成。該網站已經準備好進行研究,那麼爲什麼會認爲一個人在發佈問題之前不會去看?你無法繞過它,因爲即使正在寫出一個問題,右邊也會有搜索。因此,用負面標記來標記問題是令人費解的,並且您不知道該人員所做的搜索。 – user1794918

+0

建議,製作培訓視頻供大家觀看每個命令,然後在完成所有培訓視頻後才允許提問。 – user1794918

回答

0

,你必須逃脫斜線的字符串(路徑)。爲了避免它,使用不同的分隔符:

sed -i.bk -e 's%\^set wrapper_code=C:\\windows\\drivers\\cache%set wrapper_code=/home/harry/solo/run%' Proxy.bat 

您還可以逃離反斜槓,因爲他們在sed特殊的意義。

cat部分是無用的。

+0

我試過這條線,它不會編輯文件中的行。我在shell腳本中使用該行,所以貓部分是必需的?如果你能告訴我如何使用沒有貓的sed,那也會有幫助。 – user1794918

+0

@ user1794918:只要將文件名作爲參數傳給'sed'即可。 – choroba

+0

但我認爲這是貓|用於打開要傳遞給sed的文件的流。 – user1794918