免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4166 | 回复: 13
打印 上一主题 下一主题

[数值计算] 找出缺少的行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-17 23:55 |只看该作者 |倒序浏览
本帖最后由 心若寒江雪 于 2014-09-18 00:14 编辑

此问题有两种可能,现在列举出每种可能的一个特定的文本信息:

类型1
  1. 12 R1C1
  2. 12 R1C2
  3. 12 R1C3
  4. 12 R1C4
  5. 12 R2C1
  6. 12 R2C2
  7. 12 R2C3
  8. 12 R2C4
  9. 12 R3C1
  10. 12 R3C2
  11. 12 R3C4
复制代码
类型2
  1. 12 R1C1
  2. 12 R1C2
  3. 12 R1C3
  4. 12 R2C1
  5. 12 R2C2
  6. 12 R2C3
  7. 12 R2C4
  8. 12 R3C1
  9. 12 R3C2
  10. 12 R3C4
复制代码
问题描述:
数字12表示一共有12行
目的是找出缺少那一行
比如第一类就缺少了R3C3,而第二种则缺少了R1C4和R3C3

论坛徽章:
0
2 [报告]
发表于 2014-09-18 00:07 |只看该作者
想到一个这样的思路,但是感觉有点费事,求大牛给出高大上解决方法
  1. for i in `seq 3`
  2. do
  3.     for i in `seq 4`
  4.     do
  5.          something
  6.     done
  7. done
复制代码

论坛徽章:
10
金牛座
日期:2014-09-16 19:02:48技术图书徽章
日期:2015-11-24 01:37:29操作系统版块每日发帖之星
日期:2015-11-18 06:20:002015年亚洲杯之沙特阿拉伯
日期:2015-04-13 17:33:462015年迎新春徽章
日期:2015-03-04 09:51:162015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2014-12-04 19:33:55白羊座
日期:2014-09-17 19:34:42巨蟹座
日期:2014-09-16 21:09:4815-16赛季CBA联赛之同曦
日期:2016-06-27 23:23:07
3 [报告]
发表于 2014-09-18 02:04 |只看该作者
菜鸟路过,高大上没有。笨办法一个。学习shell,喜欢各种折腾,虽然有点牵强。凑合着交作业了。等大神出压缩版。
for i in `seq 1 3`
do
        for j in `seq 1 4`
        do
        a=R${i}C${j}
        echo "12 $a" >> work2
        sleep 1
        done
done
diff -u work work2





--- work        2014-09-18 00:12:33.670199660 +0800
+++ work2        2014-09-18 01:50:41.311853027 +0800
@@ -1,10 +1,12 @@
12 R1C1
12 R1C2
12 R1C3
+12 R1C4
12 R2C1
12 R2C2
12 R2C3
12 R2C4
12 R3C1
12 R3C2
+12 R3C3
12 R3C4

论坛徽章:
14
15-16赛季CBA联赛之辽宁
日期:2019-06-16 15:47:3515-16赛季CBA联赛之广夏
日期:2016-08-13 21:24:352015亚冠之武里南联
日期:2015-07-07 17:37:372015亚冠之萨济拖拉机
日期:2015-07-06 17:07:482015亚冠之全北现代
日期:2015-06-04 13:54:272015亚冠之城南
日期:2015-05-21 15:43:212015年亚洲杯之伊朗
日期:2015-04-25 18:20:362015年亚洲杯之伊朗
日期:2015-04-20 16:06:052015年亚洲杯之科威特
日期:2015-03-07 12:51:26丑牛
日期:2014-12-30 10:26:38申猴
日期:2014-09-28 22:40:18金牛座
日期:2014-09-13 21:12:22
4 [报告]
发表于 2014-09-18 03:17 |只看该作者
本帖最后由 reb00t 于 2014-09-18 03:31 编辑
  1. <?php

  2. $f = file('200.txt');
  3. foreach ($f as $k => $v) {
  4.   $arr = preg_split('/C/', trim($v));
  5.   $newarr[$arr[0]].=$arr[1];
  6. }
  7. foreach ($newarr as $kk => $vv) {
  8. for ($i=1; $i <=4 ; $i++) {
  9.         if(strpos("$vv", "$i")===false)
  10.                 echo  $kk."C".$i."\n";
  11. }

  12. }

  13. ?>
复制代码
已测试~
  1. awk -FC '{a[$1]=a[$1]?a[$1]$2:$2}END{for(i in a) for(n=1;n<=4;n++)if(!index(""a[i]"",""n"")) print i"C"n}' 4
复制代码
坐等awk精简代码!

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
5 [报告]
发表于 2014-09-18 10:21 |只看该作者
文本是已经排好序了的么?

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
6 [报告]
发表于 2014-09-18 10:29 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
7 [报告]
发表于 2014-09-18 10:33 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
8 [报告]
发表于 2014-09-18 10:35 |只看该作者
回复 1# 心若寒江雪
  1. awk 'BEGIN{for(i=1;i<=3;i++)for(j=1;j<=4;j++)a["R"i,"C"j]} {delete a[substr($2,1,2),substr($2,3)]} END{for(i in a)print i}' 1.txt
  2. R3C3

  3. awk 'BEGIN{for(i=1;i<=3;i++)for(j=1;j<=4;j++)a["R"i,"C"j]} {delete a[substr($2,1,2),substr($2,3)]} END{for(i in a)print i}' 2.txt
  4. R1C4
  5. R3C3
复制代码

论坛徽章:
1
处女座
日期:2014-09-18 16:18:00
9 [报告]
发表于 2014-09-18 10:42 |只看该作者
本帖最后由 Kasiotao 于 2014-09-18 10:42 编辑

回复 1# 心若寒江雪
。。。写的不好轻拍
  1. awk -F'[RC]' '{r=int(i/4+1);c=i%4+1;if(r==$2&&c==$3)i++;else{print $1" R"r"C"c;i+=2}}' testfile
复制代码

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
10 [报告]
发表于 2014-09-18 10:49 |只看该作者
本帖最后由 reyleon 于 2014-09-18 11:27 编辑
  1. awk '{k=substr($2,1,3);a[$1 FS k];b[$1 FS $2]}END{for(i in a)for(j=0;j++<4;)if(!(i""j in b))print i""j}'
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP