← Back to context

Comment by creshal

11 years ago

paste was my most recent "holy shit this saves so much time" discovery. I blame it on the not quite intuitive name.

What do you use it for?

  • One use is converting columns of numbers into math strings for bc.

    Example (contrived):

        $ seq 10 20 | paste -s -d +
        10+11+12+13+14+15+16+17+18+19+20
    
        $ seq 10 20 | paste -s -d + | bc
        165
    

    Or converting columns of strings into regex 'or' clauses for searching (contrived example again):

        $ cut -f 3 -d , something.csv | paste -s -d "|"
        a|b|c|d|e|f
    
        $ egrep "$(cut -f 3 -d , something.csv | paste -s -d "|")" another_file
        ... result lines appear here ...

    • I've used paste all my life, but I never knew you could do

        paste - -
      

      to convert stdin into 2 columns (or "paste - - - -" to get 4 columns!). TIL ...

    • seq has the -s flag which voids the need of the paste for that command:

        $ seq -s + 10 20
        10+11+12+13+14+15+16+17+18+19+20
      

      But I agree that the paste is very useful.

        # a few random samples for an IN SQL statement
        $ shuf -i 1-500000 -n 5 | paste -s -d ,
        371492,250061,266669,455846,295852
      
        # we can even get PI
        $ ( seq -s + -f '4/%g' 1 4 100000 && seq -s - -f '4/%g' 3 4 100000 ) | paste -s -d - | bc -l
        3.14157265358979523735

      1 reply →