在每次匹配之前插入,使用awawk、sed或bash



我想用以下内容更改文件:

[Peer]
PublicKey = gpS4RheuHn+/RIyT+H2Eur3nPxOKxSLDXPtyt1vqFAg=
AllowedIPs = 10.0.0.2/32
[Peer]
PublicKey = 8j/QYgGxeqMNRrKe5V/yQpBf8k8gX63bDBmeuKWhDTY=
AllowedIPs = 10.0.0.3/32
[Peer]
PublicKey = 6lcI+cBb79SS1v60kG63QPvoHvegP1ESqOjeZReUBwo=
AllowedIPs = 10.0.0.4/32
[Peer]
PublicKey = UqMYp8SbLvdnRpWG9t3Ve9SMKvmASnWE0w0XIe9XGQc=
AllowedIPs = 10.0.0.5/32
[Peer]
PublicKey = S7bbWxHECZfbnzJrDGcQOvGHq4/E7rAn4LAemtrDnRs=
AllowedIPs = 10.0.0.6/32
[Peer]
PublicKey = rSu3IGLcSZTiWTPyBRC0U12N5Ho6TMIHVfXu2An7Fyo=
AllowedIPs = 10.0.0.7/32

# Peer: 1
[Peer]
PublicKey = gpS4RheuHn+/RIyT+H2Eur3nPxOKxSLDXPtyt1vqFAg=
AllowedIPs = 10.0.0.2/32
# Peer: 2
[Peer]
PublicKey = 8j/QYgGxeqMNRrKe5V/yQpBf8k8gX63bDBmeuKWhDTY=
AllowedIPs = 10.0.0.3/32
# Peer: 3
[Peer]
PublicKey = 6lcI+cBb79SS1v60kG63QPvoHvegP1ESqOjeZReUBwo=
AllowedIPs = 10.0.0.4/32
# Peer: 4
[Peer]
PublicKey = UqMYp8SbLvdnRpWG9t3Ve9SMKvmASnWE0w0XIe9XGQc=
AllowedIPs = 10.0.0.5/32
# Peer: 5
[Peer]
PublicKey = S7bbWxHECZfbnzJrDGcQOvGHq4/E7rAn4LAemtrDnRs=
AllowedIPs = 10.0.0.6/32
# Peer: 6
[Peer]
PublicKey = rSu3IGLcSZTiWTPyBRC0U12N5Ho6TMIHVfXu2An7Fyo=
AllowedIPs = 10.0.0.7/32

I tried with:

awk '/[Peer]/{print "# Peer: "++c} 1'

但不工作。多个双输出

我想在每次匹配之前插入一个单词# Peer: sequence number

我尝试用awk,它给了我很多双输出。

尝试使用awk '/[Peer]/{print "# Peer: "++c}1',但不成功。许多双输出。

您已经忘记了转义[],/[Peer]/表示包含Peer的任何行,添加转义序列,即

/[Peer]/{print "# Peer: "++c}1

和您的代码应该按预期工作,但请记住,这将检查行是否在任何地方包含[Peer],如果您希望将[Peer]限制在整行,请执行

$0=="[Peer]"{print "# Peer: "++c}1

最新更新