LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1328|回复: 3

求用awk进行一个字段排序的排序方法,要求简单。

[复制链接]
发表于 2008-5-11 00:58:13 | 显示全部楼层 |阅读模式
求用awk进行一个字段(数字,文件大小)排序的排序方法,要求简单。
发表于 2008-5-14 11:13:03 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2008-5-17 00:02:38 | 显示全部楼层
ly引用的那个页面的程序有几个地方看不懂。
  1. #! /usr/bin/awk
  2. BEGIN {
  3. FS="[ ]";
  4. }
  5. [color=red]{
  6.   arr[len++]=$0;
  7. }
  8. [/color]
  9. END{
  10.     qsort(arr,0,len);
  11.     printfile(arr,len+1);
  12.     exit 0;
  13. }
  14. function qsort(array , p , r , t , i ,x)
  15. {
  16.     if (p < r) {
  17.         x=array[p];
  18.         i = p;
  19.         j = r+1;
  20. [color=red]        while(array[--j] > x );[/color]
  21.         while(i < j) {
  22.             t = array[i];
  23.             array[i]=array[j];
  24.             array[j]=t;
  25.             while(array[++i] < x );
  26.             while(array[--j] > x );
  27.         }
  28.         qsort(array, p , j);
  29.         qsort(array, j + 1 , r);
  30.     }
  31. }
  32. function printfile(array,len,k)
  33. {
  34.      for(k=1;k<len;k++)
  35.        {
  36.          print array[k];
  37.        }
  38. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-2 08:32:45 | 显示全部楼层
Post by Xorcerer;1850635
ly引用的那个页面的程序有几个地方看不懂。
  1. #! /usr/bin/awk
  2. BEGIN {
  3. FS="[ ]";
  4. }
  5. [color=red]{
  6.   arr[len++]=$0;
  7. }
  8. [/color]
  9. END{
  10.     qsort(arr,0,len);
  11.     printfile(arr,len+1);
  12.     exit 0;
  13. }
  14. function qsort(array , p , r , t , i ,x)
  15. {
  16.     if (p < r) {
  17.         x=array[p];
  18.         i = p;
  19.         j = r+1;
  20. [color=red]        while(array[--j] > x );[/color]
  21.         while(i < j) {
  22.             t = array[i];
  23.             array[i]=array[j];
  24.             array[j]=t;
  25.             while(array[++i] < x );
  26.             while(array[--j] > x );
  27.         }
  28.         qsort(array, p , j);
  29.         qsort(array, j + 1 , r);
  30.     }
  31. }
  32. function printfile(array,len,k)
  33. {
  34.      for(k=1;k<len;k++)
  35.        {
  36.          print array[k];
  37.        }
  38. }
复制代码
楼上所说,更没有人看得懂。
谢过ly.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表