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' filename.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?
The sed command can add a new line after a pattern match is found. The "a" command to sed tells it to add a new line after a match is found. The sed command can add a new line before a pattern match is found. The "i" command to sed tells it to add a new line before a match is found.
Use sed 's insert ( i ) option which will insert the text in the preceding line.
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 ...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With