homer512 icon

paste 6 POSIX sed

homer512 | PRO | 05/03/14 10:56:26 AM UTC | 0 ⭐ | 612 👁️ | Never ⏰ | []
Bash |

550 B

|

None

|

0 👍

/

0 👎

#!/bin/sed -f
 
# Concatenates up to 6 lines with ' '
#
#i.e.: '1\n2\n3\n4\n5\n\6\n7\n\8\n9\n10\n11\n12\n13\n14\n'
# becomes '1 2 3 4 5 6\n7 8 9 10 11 12\n13 14\n'
 
 
: restart
# if less than 5 embedded newlines, i.e. < 6 fields in pattern space
/\(.*\n\)\{5\}/ ! {
    # if last line, print
    $ b print
    # otherwise, append next line to pattern space and repeat
    N
    b restart
}
# 6 fields in pattern or all available, even when less
: print
# replace embedded line ends with desired field separator
y/\n/ /
# then end cycle with output

Comments