How to replace a pattern with newline (\n) with sed under UNIX / Linux operating systems?
14,022
Solution 1
Sed uses &
as a shortcut for the matched pattern. So you are replacing :s1:
with :s1:\n
.
Change your sed command like this:
sed 's/:sl:/\n/g' singleline.txt
Solution 2
You can do it more easily with tr : tr '\n' ' ' < singleline.txt
Author by
Rlearner
Updated on June 17, 2022Comments
-
Rlearner almost 2 years
I have a txt file which contains:
Some random text here. This file has multiple lines. Should be one line.
I use:
sed '{:q;N;s/\n/:sl:/g;t q}' file1.txt > singleline.txt
and get:
Some random:sl:text here. This file:sl:has multiple lines. Should be one line.
Now I want to replace the
:sl:
pattern withnewline (\n)
character. When I use:sed 's/:sl:/&\n/g' singleline.txt
I get:
Some random:sl: text here. This file:sl: has multiple lines. Should be one line.
How to replace the pattern with newline character instead of adding newline character after the pattern?