2012-05-17 48 views
0

我有一個需要編輯的300多個文件的列表,所以我認爲sed命令與find和exec一起可以幫助我。sed - 我的更換有什麼問題?

在做錯事情之前(比如覆蓋我不會修改的文件或類似的東西),我決定使用sed並將他的結果輸出到bash中,而不是本地替換。

我searchin'的字符串是:<tr><td class="button" style=" background:#040404; color:#eee9dc; font-size: 23px; padding:5px 0; text-align:center;"><a href="../Z2/C24357-0/hhcm-LASTMINUTES.html" style=" text-decoration:none; cursor:pointer; color:#eee9dc">Offerte & LastMinute</a></td></tr>

,我只希望替換部分<a href="../Z2/C24357-0/hhcm-LASTMINUTES.html<a href="../../../special_offers.php?lang=it"

因爲我是一個小白約regex,我會看看那web page以一種體面的方式將我引入正則表達式的論點。現在

,我嘗試類似的東西(在一個單一的文件,只是爲了看看到輸出的「安全」的方式)

sed s/\<a.*LAST.*html\" 
     /\<a href="\.\.\/\.\.\/\.\.\/special_offers\.php\?lang=en"/ 
     C25030-9_3/hhcm-Solo_per_due.html 

,我得到這個錯誤:sed: -e expression #1, char 20: unterminated s' commandsed表達式不正確,但我不知道錯誤是否在replacement部分或其他地方。

現在感謝您的時間和精力。

S.

編輯

感謝答案,我通過上來的東西這個

sed 's/<a.*LAST.*html\"/\<a href="..\/..\/..\/special_offers.php?lang=en"/' C25030-9_3/hhcm-Solo_per_due.html 

回答

1

首先解決它,似乎你需要把整個SED表達(第二,你忘了/到底(見編輯),第三,別忘了替換會僅在整個模式字符串在一行時纔有效。

編輯:於s命令更多信息(see here爲例):這是最後/s/old/new/和可能的標誌。你的命令看起來像s/something/somethingelse/somethingelse,我認爲它比它應該更多。

+0

對於單行部分,是的謝謝,但我只是讓它以這種方式使它更容易讀取s.o.用戶。我錯過了什麼?我看到它後'''char – DonCallisto

+0

+1單配額建議 – DonCallisto

+0

@DonCallisto看到我的編輯 –