Issue
I want to insert multiple lines into a file using shell script. Let us consider my input file contents are: input.txt:
abcd
accd
cdef
line
web
Now I have to insert four lines after the line 'cdef' in the input.txt file. After inserting my file should change like this:
abcd
accd
cdef
line1
line2
line3
line4
line
web
The above insertion I should do using the shell script. Can any one help me?
Solution
Another sed
,
sed '/cdef/r add.txt' input.txt
input.txt:
abcd
accd
cdef
line
web
add.txt:
line1
line2
line3
line4
Test:
sat:~# sed '/cdef/r add.txt' input.txt
abcd
accd
cdef
line1
line2
line3
line4
line
web
If you want to apply the changes in input.txt
file. Then, use -i
with sed
.
sed -i '/cdef/r add.txt' input.txt
If you want to use a regex as an expression you have to use the -E
tag with sed
.
sed -E '/RegexPattern/r add.txt' input.txt
Answered By - sat Answer Checked By - Marilyn (WPSolving Volunteer)