J'ai un énorme séparé par des tabulations fichier formaté comme ceci
X column1 column2 column3
row1 0 1 2
row2 3 4 5
row3 6 7 8
row4 9 10 11
Je tiens à transposer de manière efficace en utilisant uniquement des commandes bash (je pourrais écrire une dizaine de lignes de script Perl pour le faire, mais il devrait être plus lente à exécuter que le natif de bash fonctions). Si la sortie doit ressembler à
X row1 row2 row3 row4
column1 0 3 6 9
column2 1 4 7 10
column3 2 5 8 11
J'ai pensé à une solution comme ceci
cols=`head -n 1 input | wc -w`
for (( i=1; i <= $cols; i++))
do cut -f $i input | tr $'\n' $'\t' | sed -e "s/\t$/\n/g" >> output
done
Mais c'est lent et ne semble pas la solution la plus efficace. J'ai vu une solution pour la vi dans ce post, mais c'est encore plus lent. Des idées/suggestions/idées brillantes? :-)