免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4891 | 回复: 11

如何把2.txt里面有的行,但是1.txt里面没有的行,写到3.txt里面? [复制链接]

论坛徽章:
0
发表于 2014-04-11 16:27 |显示全部楼层
如何把2.txt里面有的行,但是1.txt里面没有的行,写到3.txt里面?
1.txt与2.txt文件里面的内容很接近,
那么请问如何把2.txt里面有的行,但是1.txt里面没有的行,
写到3.txt里面呢?

论坛徽章:
0
发表于 2014-04-11 16:28 |显示全部楼层
本人perl菜鸟一枚, 只会些简单的正则表达式这种弱智的,复杂的不会
学过简单的c语言

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
发表于 2014-04-11 16:48 |显示全部楼层
本帖最后由 q1208c 于 2014-04-11 16:48 编辑
  1. diff 1.txt 2.txt | sed -n '/^> /s/^> //p' > 3.txt
复制代码

论坛徽章:
0
发表于 2014-04-11 16:51 |显示全部楼层
q1208c 发表于 2014-04-11 16:48


我想的是perl

论坛徽章:
0
发表于 2014-04-11 17:26 |显示全部楼层
本帖最后由 xiaomm250 于 2014-04-11 17:28 编辑

把1.txt文件里面的内容赋值给数组a
把2.txt文件里面的内容赋值给数组b
foreach i  in a
    k=0
    foreach j in b
        if i等于j then
             k=k+1
             退出本层循环
        end
    end
    if k>0 then
        输出i到3.txt
    end
end
这个是我大致的思路,如何用perl语言来描述呢?????????

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
发表于 2014-04-11 17:50 |显示全部楼层
回复 5# xiaomm250

这要看你的文件有多大. 如果只有几行, 当然没问题. 如果有上百万行. 你得多少内存呀.
   

论坛徽章:
0
发表于 2014-04-11 18:09 |显示全部楼层
本帖最后由 xiaomm250 于 2014-04-11 18:10 编辑
q1208c 发表于 2014-04-11 17:50
回复 5# xiaomm250

这要看你的文件有多大. 如果只有几行, 当然没问题. 如果有上百万行. 你得多少内存呀 ...
  1. #2.txt有的,但是1.txt却没有的,把这些行输出到3.txt
  2. open(File1,'<1.txt') or die "can not open file:$!\n";
  3. open(File2,'<2.txt') or die "can not open file:$!\n";
  4. open(File3,'>3.txt') or die "can not open file:$!\n";
  5. foreach $line2(<File2>)
  6. {
  7.     $k=0;
  8.     foreach $line1(<File1>)
  9.     {
  10.         if ($line2 eq $line1)
  11.         {
  12.             $k=$k+1;
  13.         }
  14.     }
  15.     if ($k==0)
  16.     {
  17.         print File3 $line2;
  18.     }
  19. }
  20. close(File1);
  21. close(File2);
  22. close(File3);
复制代码
为什么我的这个代码会没用呢??????????

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
发表于 2014-04-11 19:04 |显示全部楼层
回复 7# xiaomm250

    http://search.cpan.org/~adamk/Text-Diff-1.37/lib/Text/Diff.pm

这个可能是你需要的.

论坛徽章:
0
发表于 2014-04-11 19:48 |显示全部楼层
本帖最后由 xiaomm250 于 2014-04-11 20:00 编辑

谁能给一个代码?

论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
发表于 2014-04-11 20:15 |显示全部楼层
大致的思路
  1. open( File1, '<1.txt' ) or die "can not open file:$!\n";
  2. open( File2, '<2.txt' ) or die "can not open file:$!\n";
  3. open( File3, '>3.txt' ) or die "can not open file:$!\n";

  4. my %F1 = map { $_, 1 } <File1>;

  5. while (<File2>) {
  6.     print File3 $_ unless exists $F1{$_};
  7. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。




----------------------------------------

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP