Nohsib Nohsib - 1 month ago 6
Bash Question

how to insert a line using sed before a pattern and after a line number?

How to insert a line into a file using

sed
before a pattern and after a line number? And how to use the same in shell script?

This inserts a line before every line with the pattern :

sed '/Sysadmin/i \ Linux Scripting' finename.txt


And this changes this using line number range :

sed '1,$ s/A/a/'


So now how to use these both (which I couldn't) to insert a line into a file using
sed
before a pattern and after a line number or another approach?

Answer

You can either write a sed script file and use:

sed -f sed.script file1 ...

Or you can use (multiple) -e 'command' options:

sed -e '/SysAdmin/i\
Linux Scripting' -e '1,$s/A/a/' file1 ...

If you want to append something after a line, then:

sed -e '234a\
Text to insert after line 234' file1 ...
Comments