Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to insert new lines after a specific empty line in linux?

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:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

awk '!NF{f=0} /ok icmp code for FORWARD/ {f=1} f' file.rules

>Solution :

Using ed to edit the file:

ed -s file.rules <<'EOF'
/^# ok icmp code for FORWARD/;/^$/a
# new lines comment
new line 1
new line 2
.
w
EOF

First sets the current line to the one matching # ok icmp code for FORWARD, then advances the current line to the first blank line following that, and appends text after it (A line with a single period marks the end of input), then writes the changed file back to disk.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading