我有一个巨大的制表符分隔的文件格式化这样
X column1 column2 column3 row1 0 1 2 row2 3 4 5 row3 6 7 8 row4 9 10 11
我想使用只有bash命令(我可以写一个十行左右的Perl脚本,这样做,但它的执行速度比本机bash函数)更有效的方式转置它。所以输出应该是这样
X row1 row2 row3 row4 column1 0 3 6 9 column2 1 4 7 10 column3 2 5 8 11
我想到这样的解决方案
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
但它很慢,似乎不是最有效的解决方案。我在this post看到了一个解决方案vi,但它仍然过慢。任何想法/建议/辉煌的想法? 原文链接:https://www.f2er.com/bash/392242.html