分类:
2005-08-24 22:15:14
将文件的 行 变成 列 的代码
1.shell 清單
#!/bin/sh -x
#ScriptName:rotate
[ $# -ne 1 ] && exit 1
if [ ! -s $1 ]
then
echo
"Usage:rotate datafile"
exit 1
fi
row=`sed -n '$=' $1`
col=`awk 'NR==1{print NF}' $1`
awk -v row=$row -v col=$col
'{for(i=1;i<=NF;i++)a[NR"-"i]=$i} END
{ for(i=1;i<=col;i++)
{ for(j=1;j<=row;j++)
printf("%s
",a[j"-"i]);printf("
") } }' $1
2.使用範本
[root@dbtest02 root]# cat datafile.txt
a a a a a a a a a a
b b b b b b b b b b
c c c c c c c c c c
d d d d d d d d d d
e e e e e e e e e e
f f f f f f f f f f
g g g g g g g g g g
[root@dbtest02 root]# sh rorate.sh datafile.txt
a b c d e f g
a b c d e f g
a b c d e f g
a b c d e f g
a b c d e f g
a b c d e f g
a b c d e f g
a b c d e f g
a b c d e f g
a b c d e f g
[root@dbtest02 root]#