免费注册 查看新帖 |

Chinaunix

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

[文本处理] 如何删除2个文本中相同的数据 [复制链接]

论坛徽章:
0
发表于 2013-07-07 15:43 |显示全部楼层
比如
a.txt
123456
111111
233331
123333


b.txt
aabeef
311322
355552
123456

删除生成的c.txt(把2个文本相同的123456删除了)为
111111
233331
123333
aabeef
311322
355552

我用的是这个,但是每次要把a文本和b文本放到一起,才可以,有没有不用把a.txt和b.txt放在一起,直接能比较2个文件,删除,生成另外一个文本
sort a.txt |uniq -u >c.txt

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
发表于 2013-07-07 16:11 |显示全部楼层
本帖最后由 关阴月飞 于 2013-07-07 16:13 编辑
  1. sort  a.txt b.txt|uniq -u
复制代码
  1. awk '{a[$0]++}END{for(i in a)if(a[i]<2)print i}' a.txt b.txt
复制代码

论坛徽章:
0
发表于 2013-07-07 16:28 |显示全部楼层
谢谢楼上的

论坛徽章:
0
发表于 2013-07-07 16:31 |显示全部楼层
sort好像不行,提示:输入文件指定了两次。

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
发表于 2013-07-07 16:59 |显示全部楼层
回复 4# vkqo


    额,我在LINUX上是可行的,如果直接SORT两个文件不行,就这样吧:
  1. cat a.txt b.txt |sort |uniq -u
复制代码

论坛徽章:
0
发表于 2013-07-07 21:19 |显示全部楼层
直接两个文本没试过

论坛徽章:
0
发表于 2013-07-08 09:43 |显示全部楼层
uniq -u 可以

论坛徽章:
0
发表于 2013-07-08 12:55 |显示全部楼层
关阴月飞 发表于 2013-07-07 16:11


请问,我想知道下面代码中,a b文件执行过程是怎么样的?
  1. awk '{a[$0]++}END{for(i in a)if(a[i]<2)print i}' a.txt b.txt
复制代码
{a[$0]++}是先读取a完后 读取b 完后 执行end后语句?

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
发表于 2013-07-08 12:59 |显示全部楼层
回复 8# mmwobuaini


{a[$0]++}是先读取a完后 读取b 完后 执行end后语句, 就是这样的。

   

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
发表于 2013-07-08 14:03 |显示全部楼层
diff file1 file2  也可以吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP