linux系统下文件矩阵转置

col-row.sh

#!/bin/bash
filename=$1
#m=`wc -l filename | cut -f 1 -d ' '`
#echo $m
n=`head -1 $filename | wc -w`
for i in `seq $n`
# get contents of a col and print as a row
do
  echo `awk '{print $'$i'}' ORS="\t" $filename` 
done

代码运行(速度较慢)

sh col-row.sh input.txt > output.txt

col-row2.sh

#!/bin/bash
awk '{for(i=1;i<=NF;i++)a[NR,i]=$i}END{for(j=1;j<=NF;j++)for(k=1;k<=NR;k++)printf k==NR?a[k,j] RS:a[k,j] FS}' input.txt > output.txt 

代码运行(速度较快)

sh col-row2.sh

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容