2017-04-22 81 views
-1

我有一個文件,說test.sh包含以下細節文件替換基於詞匹配

check_interval     1 
    retry_interval     1 
    event_handler_enabled   1 

我想event_handler_enabled 0

更換event_handler_enabled 1線請幫助

回答

4

sed -i "s/\(event_handler_enabled.*\)1/\10/" test.sh


讓我們來ee sed做了什麼:

  1. 首先,它找到了想要更改的行。該行以event_handler_enabled開頭(實際上它不關心之前有多少空間)。

  2. 然後,它發現了1:(\(event_handler_enabled.*\)1

  3. 最後,它改變10

完成。

P.S.由於反向引用,這意味着sed會發現event_handler_enabled後面的所有字符,並把它們在正確的地方:)

+2

您可能要解釋你正在使用*後向引用*保存的不變部分如果OP需要進一步熟悉這個主題,OP可以閱讀更多關於其使用的文本。 –

+2

@ DavidC.Rankin Lol好像OP關心的一樣,看看他們爲自己的問題所付出的努力。 – 123

+0

@ 123我同意你的意見。 LOL – wrfly