我的文件和内容如下所示。
8,304700e-04
我想仅在#Start of VM1到#End OF VM1
的行之间用[test1,test2,test3]更新includeQueue部分的行有人可以帮我解决这个问题。
答案 0 :(得分:0)
以下将选择“Start OF VM1”和“End OF VM1”之间的记录范围,然后在该块记录上应用gsub
功能。其中[]
替换为[test1,test2,test,*]
。
awk '/Start OF VM1/,/End OF VM1/{if( $0 ~/includeQueues/ )gsub(/\[\]/,"[test1,test2,test,*]")}1'
------------------------------------------------
#########
## If xxxx:
##
servers:
# Start OF VM1
- displayName: "I_INST1_1"
includeQueues: [test1,test2,test,*]
excludeTopics: []
# End OF VM1
# Start OF VM2
- displayName: "I_INST1_2"
includeQueues: []
excludeTopics: []
# End OF VM2
---------------------------------------------------
答案 1 :(得分:0)
尝试:
awk '/End OF VM1/{A=""} /Start OF VM1/{A=1} A && /includeQueues/{$0="includeQueues: [test1,test2,test,*]"} 1' Input_file