I got a file with text in this format. (with unwanted line spaces)
1
2
3
Now I wanted to use vim to remove those unwanted lines with this command :%s/\n\n/\n/g. replacing two new lines with one. But got this result:
1^@2^@3
then I found out about carriage return and used this post to change the command to :%s/\r\r/\r/g and got this error saying E486: Pattern not found: \r\r
then I used this working command :%s/\n\n/\r/g and got the desired result.
1
2
3
How is this working?
The
\rin the pattern matches a carriage return (CR) char, not any line break char. The\rconstruct should used in the replacement pattern to replace with a newline.So, you can use either
or, to replace chunks of any two or more newline chars with a single newline:
To account for CRLF endings, you can use
that matches two or more (
{2,}) sequences of an optional CR char (\r?) and then a newline, line feed (LF) char.