shell 实现行转列、列转行的几种方法
awk
行转列
以空格为分隔符
awk -F "+" '{for(i=1;i<=NF;i++) a[i,NR]=$i}END{for(i=1;i<=NF;i++) {for(j=1;j<=NR;j++) printf a[i,j] " ";print ""}}' file`.txt
另外一种写法
awk '{for(i=0;++i<=NF;)a[i]=a[i]?a[i] FS $i:$i}END{for(i=0;i++<NF;)print a[i]}'
xargs
行转列
实际应用中,请将这里的x替换成文件的行数
cat file.txt|args -nx
tr
列转行
cat file.txt |tr "\n" ","|sed -e 's/,$/\n/'