免费注册 查看新帖 |

Chinaunix

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

[文本处理] 我想获取两个文件的不同之处,为什么grep的结果不一样?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-12-16 10:50 |只看该作者 |倒序浏览
file1:
A0320059
A0555233
A0557590
A0557810
A0557950
A0558842
A0558847
A0560986
A0560991
A0561201
A0563695
A0564325
A0566245
A0566423
A0566438
A0566759
A0567318
A0568831
====================
file2:
A0555233
A0557590
A0557950
A0558842
A0558847
A0560986
A0560991
A0561201
A0563695
A0564325
A0566245
A0566423
A0566438
A0566759
A0567318
A0568831
A0899999

我现在想获得
file1没有, file2有 > 文件1
file1有,file2没有> 文件2
file1,file2共有 > 文件3

>>>>>>>>>>>>>
我用grep -f file1 file2 和 grep -f file2 file1 ,为什么一个是准的,另一个是0?
导致 grep -vf file1 fil2 和grep -vf 也是不一样.

>>>>>
也查阅过以前的帖子,有人问过的,但是用他们的方法,比如grep -vxFf, 也是一样不能得到正确的信息.请帮忙~~

谢谢了..

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2014-12-16 11:01 |只看该作者
回复 1# casio1374633
  1. grep -Fxf file1 file2|sort -u
复制代码
  1. grep -Fxf file2 file1|sort -u
复制代码
的结果是一样的。

其它情况下,二者的结果不一定相同。

论坛徽章:
0
3 [报告]
发表于 2014-12-16 11:09 |只看该作者
黑哥.我用你给的两个代码怎么结果都是空?我的bash 是GNU BASH4.1.5. 操作系统 xubuntu 10.04 ,内核 2.6.32-69-generic

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
4 [报告]
发表于 2014-12-16 11:14 |只看该作者
回复 3# casio1374633


    你的文件是啥?把你测试的文件以附件形式贴上来。

论坛徽章:
0
5 [报告]
发表于 2014-12-16 11:18 |只看该作者
我贴出来的就是我的文件内容啊.

论坛徽章:
0
6 [报告]
发表于 2014-12-16 11:22 |只看该作者
附件内是比较的文本

test.tar.gz

255 Bytes, 下载次数: 8

求职 : Linux运维
论坛徽章:
3
戌狗
日期:2015-01-11 13:27:532015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯纪念徽章
日期:2015-05-08 15:03:30
7 [报告]
发表于 2014-12-16 11:23 |只看该作者
用diff不是很清晰吗??
  1. diff -y a.txt b.txt
  2. A0320059                                                      <
  3. A0555233                                                        A0555233
  4. A0557590                                                        A0557590
  5. A0557810                                                      <
  6. A0557950                                                        A0557950
  7. A0558842                                                        A0558842
  8. A0558847                                                        A0558847
  9. A0560986                                                        A0560986
  10. A0560991                                                        A0560991
  11. A0561201                                                        A0561201
  12. A0563695                                                        A0563695
  13. A0564325                                                        A0564325
  14. A0566245                                                        A0566245
  15. A0566423                                                        A0566423
  16. A0566438                                                        A0566438
  17. A0566759                                                        A0566759
  18. A0567318                                                        A0567318
  19. A0568831                                                        A0568831
  20.                                                               > A0899999
  21.                                                               >
复制代码

论坛徽章:
0
8 [报告]
发表于 2014-12-16 11:24 |只看该作者
这只是很小的一部分啊.原文件有300K.我需要把a,b各自不同的部分导出来

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
9 [报告]
发表于 2014-12-16 11:31 |只看该作者
回复 5# casio1374633


    你看到的东西和别人看到的东西未必是一样的。
你的两个文件一个是unix格式,一个是dos格式。

  1. $ grep -Fxf old_a new_a > result1.txt

  2. $ grep -Fxf new_a old_a > result2.txt

  3. $ diff result1.txt result2.txt

  4. $ wc -l result[12].txt
  5. 16 result1.txt
  6. 16 result2.txt
  7. 32 total
复制代码

论坛徽章:
0
10 [报告]
发表于 2014-12-16 11:33 |只看该作者
我刚试了diff -y ,没有出现你的那个效果.

但是用sdiff -ab ,能够出现你那个一样的效果
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP