LINUX SHELL 行列转换、倒序
(2009-12-03 18:10:51)
标签:
杂谈 |
分类: LINUX-SHELL |
==============================================================================
这部分为【转】:http://blog.chinaunix.net/u2/76292/showart_1359777.html
1.行列转换:
#/bin/bash
if [ $# -ne 1
]
then
fi
if [ ! -s $1 ]
then
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]);print ""}
}' $1
或者:
#!/bin/bash
n=1
m=$(awk
'NR==1{print NF}'
$1)
while (( n<=m
))
do
done
2.倒序
a. sed '1!G;h;$! d'
b. tac,就是cat反着写
==============================================================================
这部分为【后记】:
使用时发现,只能处理小文件,当数据文件较大,如300M,上面程序出错。只得新写。
重写了个比较笨拙的行列转换程序,效率一般,关键是大数据文件没有问题。
F=$1
m=`wc -l ${F} | awk '{print $1}'`
awk '{for(i=1;i<=NF;i++){print $i
>> NR".rs"}}' ${F}
while [ ${m} -gt 0 ]
do
done