Issue
I want to change the file with the following contents:
[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
to
# 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'
but doesn't work. Many double output.
I want to insert a word # Peer: sequence number
before each match.
I try with awk, it gives me many double output.
Solution
try with awk '/[Peer]/{print "# Peer: "++c}1' but doest work. Many double output.
You have forgotten about escaping [
and ]
, /[Peer]/
means any line containing P
or e
or e
or r
, add \
escape sequences that is do
/\[Peer\]/{print "# Peer: "++c}1
and your code should work as intended, though keep in mind that this will check if line contain [Peer]
anywhere, if you wish to limit to [Peer]
spanning whole line do
$0=="[Peer]"{print "# Peer: "++c}1
Answered By - Daweo Answer Checked By - David Marino (WPSolving Volunteer)