An efficient way to transpose a file in Bash

前端 未结 29 2720
时光说笑
时光说笑 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:59

    I was looking for a solution to transpose any kind of matrix (nxn or mxn) with any kind of data (numbers or data) and got the following solution:

    Row2Trans=number1
    Col2Trans=number2
    
    for ((i=1; $i <= Line2Trans; i++));do
        for ((j=1; $j <=Col2Trans ; j++));do
            awk -v var1="$i" -v var2="$j" 'BEGIN { FS = "," }  ; NR==var1 {print $((var2)) }' $ARCHIVO >> Column_$i
        done
    done
    
    paste -d',' `ls -mv Column_* | sed 's/,//g'` >> $ARCHIVO
    

提交回复
热议问题