An efficient way to transpose a file in Bash

前端 未结 29 2712
时光说笑
时光说笑 2020-11-22 03:30

I have a huge tab-separated file formatted like this

X column1 column2 column3
row1 0 1 2
row2 3 4 5
row3 6 7 8
row4 9 10 11

I would like t

29条回答
  •  梦谈多话
    2020-11-22 03:49

    The only improvement I can see to your own example is using awk which will reduce the number of processes that are run and the amount of data that is piped between them:

    /bin/rm output 2> /dev/null
    
    cols=`head -n 1 input | wc -w` 
    for (( i=1; i <= $cols; i++))
    do
      awk '{printf ("%s%s", tab, $'$i'); tab="\t"} END {print ""}' input
    done >> output
    

提交回复
热议问题