+ -
当前位置:首页 → 问答吧 → 关于/proc/uptime

关于/proc/uptime

时间:2011-05-11

来源:互联网

比如一个文件里有下列数据 1 1 1 5 5 5 5 5 7 7.。。。。
1 1
2 1
3 1
4 5
5 5
6 5
7 5
8 5
9 7
10 7
11 7
12 15
13 15
.。。。
。。。
其中左边的列是序号,本来文件里没有,我为了表示清除,添上去的
我要得到同一数值的最大序号,比如1 其最大序号是 3, 5的话是 8, 7的话是 11
从而写入另一个文件,其格式如下
1 3
5 8
7 11
15 13
.。。
。。

如何用shell脚本实现? 谢谢

作者: esolve   发布时间: 2011-05-11

代码:
#!/bin/bash

awk '{
   ary[NR]=$1
}

END{
   for(i=1;i<NR-1;i++) {
      if(ary[i+1] > ary[i]) {
         print i
      }
   }
   if(ary[NR-1]==ary[NR])  {
      print NR
   } else {
      printf "%d\n%d\n",NR-1,NR
   }
}' bb.txt


貌似uniq 和sort都没有提供这样的选项吧。我也是刚学脚本,测试可以运行。bb.txt是要处理的文件的名字。楼主的文件应该已经是有序的吧?如果有哪条命令的选项可以直接实现,那就最好不过了。

作者: scutdk   发布时间: 2011-05-12

热门下载

更多