如何在匹配模式后立即更改一行

时间:2012-09-06 04:22:39

标签: sed inline-editing

我需要一个sed one liner来紧跟模式[lb]之后更改一行:

[lb]
enabled=0

改为:

[lb]
enabled=1

感谢所有专家提前帮忙!

4 个答案:

答案 0 :(得分:2)

IMO,sed不是真正合适的工具,但你可以做到:

sed '/^\[lb\]/{ N; s/enabled=0/enabled=1/; }' input

答案 1 :(得分:0)

希望这不是你的功课。

sed  '/\[1b\]/,+1s/enabled=0/enabled=1/' <input-file>

答案 2 :(得分:0)

使用GNU sed的一种方式:

sed -i -r '/\[lb\]/ { N; s/(enabled=)0/\11/; }' file.txt

答案 3 :(得分:0)

使用awk的更通用的方式:

awk 'BEGIN {RS="\\[.*\\]"; ORS=OFS="" } { gsub("enabled=0", "enabled=1"); print RT, $0 }'