I'm trying to find a way to insert a new line after a specific empty line.
for example I have a file contains firewall rules, and I want to insert new lines after "# ok icmp code for FORWARD" and first empty line. (I don't know the exact line number and it is different in multiple machines):
... # ok icmp code for FORWARD -A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT -A ufw-before-forward -p icmp --icmp-type time-exceeded -j ACCEPT -A ufw-before-forward -p icmp --icmp-type parameter-problem -j ACCEPT -A ufw-before-forward -p icmp --icmp-type echo-request -j ACCEPT [Insert new lines here] # new lines comment new line 1 new line 2 ... here is my incomplete solution:
to find the specific line number:
cat file.rules | grep -n "ok icmp code for FORWARD" | cut -d':' -f 1
to show the lines after specific line and before the empty line:
awk '!NF{f=0} /ok icmp code for FORWARD/ {f=1} f' file.rules