基于单词匹配的文件替换

时间:2017-04-22 15:16:13

标签: bash awk sed

我有一个文件说test.sh,其中包含以下详细信息

    check_interval                  1
    retry_interval                  1
    event_handler_enabled           1

我想将event_handler_enabled 1行替换为event_handler_enabled 0

请帮助

1 个答案:

答案 0 :(得分:4)

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

让我们看看sed做了什么:

  1. 首先,它找到了您要更改的行。该行以event_handler_enabled开头(实际上它并不关心之前有多少个空格)。

  2. 然后,它找到1 :( \(event_handler_enabled.*\)1

  3. 最后,它将1更改为0

  4. 完成。

    P.S。作为后引用,这意味着sed会找到event_handler_enabled后面的所有字符并将它们放在正确的位置:)

相关问题