bash/sed/awk/etc remove every other newline
can't test right now, but
... | paste - -
should do it
One possibility is:
awk 'ORS=NR%2?" ":"\n"'
If the line number is evenly divisible by 2, end with a new line, otherwise, end with a space.
(Tested on: CentOS 6, GNU Awk 3.1.7)
Using sed (see explanation):
sed ':a;N;$!ba;s/\nGroup/ Group/g'
Further reading:
- Removing new line characters
If you want to use sed
, there's no reason to read the whole file into memory. You can merge every other line like this:
sed 'N;s/\n/ /' inputfile
Use any character you'd like instead of the space.
Here's another way using awk:
awk '{printf "%s", $0; if (getline) print " " $0; else printf "\n"}' inputfile
The if/else
handles the case where there is an odd number of lines in the file. Without it, the odd last line gets printed twice. Otherwise, for comparison, you could do:
awk '{printf "%s", $0; getline; print " " $0}'
This works for me on Linux:
... | tr "\\n" " "
This replaces an empty space for a newline character; you must escape the newline character for things to work correctly.