2017-04-22 95 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