此题目来自网友协助请求。
要求如下:
文件内有如下内容:
1 6 9 3 8 12 10 5
使用awk按列读取数字,对数字进行升序排序并输出。
编辑awk脚本awkorderby如下:
BEGIN{imax=0}
{for(i=1;i<=NF;i++)
{
arr[i+imax]=$i
}
imax=imax+NF
}
END{ for(i=1;i<imax;i++)
{
for(j=i+1;j>1;j--)
{
ii=j-1
if(arr[ii] > arr[j])
{
tmp=arr[ii]
arr[ii]=arr[j]
arr[j]=tmp
}else
{
break
}
}
}
for(l=1;k<=imax;k++)
{
print arr[k]
}
}
执行命令: awk -f awkorderby ntext.txt
题目中只有一行数字,本例考虑到多行数据的可能性,支持有多行数据。
本例排序因为题目没有要求,使用了插入排序法。
ntext.txt内容如下:
执行结果如下