免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: princes1
打印 上一主题 下一主题

序号连续性问题的判断 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-03-16 13:09 |只看该作者
学习一下楼上的"序号"思路:
perl -ne 'unless(defined $old){$old=$_;next} printf "%d:%05s\n",$.,$old until ++$old==$_;' a.txt
同楼上一样的前提

[ 本帖最后由 dream3401 于 2009-3-16 13:11 编辑 ]

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
12 [报告]
发表于 2009-03-16 13:11 |只看该作者

回复 #10 springwind426 的帖子

這個好~~剛我還在想怎麽處理這個多個缺失的問題.. 學習了...

  1. awk 'NR==1{sn=$1-1}NR>1{if(sn<$1-NR){print "line "NR" need:"$1-1;sn=$1-NR}}'
复制代码

论坛徽章:
0
13 [报告]
发表于 2009-03-16 13:21 |只看该作者
楼上的可能不行哟
awk 'NR==1{a=$1;}NR>1{while(++a!=$1)printf "%d:%05d\n",NR,a}' a.txt

论坛徽章:
0
14 [报告]
发表于 2009-03-16 14:46 |只看该作者
嗯 我是先SORT后再对这个文件进行处理的

论坛徽章:
0
15 [报告]
发表于 2009-03-16 16:12 |只看该作者
想了半天也没有想出什么好办法,不过下面代码应该能准确无误得出结果
[root@localhost shell]# cat test.txt
100     asdfsdff
1000    asdfsdfsadfsaf
1       asdfsfasf
2       asasdfasf
3       asdfsafdsaf
5       sadfsdfsafsdf
4       assdfsadfsffsdf
6       asdfasdfdsfsaf
7       asdfasfdfasf
8       asdfasdfasdfsdf
1000    asdfasdfasfdaf

[root@localhost shell]# cat test.awk
#!/bin/awk -f

{
    tmp[NR] = $0
    if (NR > 1)
    {
        split(tmp[NR-1],arry1)
        if ($1 != arry1[1] + 1)
        {
            if (NR - 1 == 1)
            {
                print tmp[NR-1]
                flag+=1
             }else{
                flag+=1
             }
            if (flag > 1)
                print tmp[NR-1]
        }else{
            flag = 0
        }
    }
}
END{
    split(tmp[NR],endarry)
    if (endarry[1] != arry1[1] + 1)
        print tmp[NR]
}
[root@localhost shell]# ./test.awk test.txt
100     asdfsdff
1000    asdfsdfsadfsaf
5       sadfsdfsafsdf
4       assdfsadfsffsdf
1000    asdfasdfasfdaf
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP