A useful option of sed command to replace multiple lines with a single line upon matching a given string.
$ cat -n file.txt
Hello world
Hello nobody
nobody
Somebody
anybody
If you want to replace the lines 2 and 3 with another line "Hello everybody" the below command will help.
$ sed '/nobody$/{N;s/Hello nobody\nnobody/Hello everybody/}' file.txt
$ cat -n file.txt
1 hello world
2 Hello everybody
3 Somebody
4 anybody
$ cat -n file.txt
Hello world
Hello nobody
nobody
Somebody
anybody
If you want to replace the lines 2 and 3 with another line "Hello everybody" the below command will help.
$ sed '/nobody$/{N;s/Hello nobody\nnobody/Hello everybody/}' file.txt
$ cat -n file.txt
1 hello world
2 Hello everybody
3 Somebody
4 anybody
Comments