• 原!linux comm命令文件 比较 输出交集,差集。


    文件内容大致如下:

    112805|300011222483|OL海12卓|47397c33e36cdbed26637c50dd305973|2019-08-06 10:50:13|登B录123|succ|
    221805|3002228346|12车安S卓|ce125ad05675ac2c73de325d4d573707|2019-08-06 10:49:20|号A码校验(SDK)123|succ|

    ........

    问题:线上话单文件第三方传来的文件1已经计费过,但是由于故障,文件1内容不全,后面给了全量文件2,故要排除文件2中 与 文件1共有内容行,即排除文件1中已经计费过的所有内容行。

    现有文件:1.txt  2.txt ,现在要获得只在2.txt中有的内容行。

    利用comm命令

    comm -3 file1 file2
    这个方法看起来最简单。命令comm的功能就是,逐行比较两个排好序的文件,默认输出有三列:只在file1中有的行、只在file2中有的行、在file1和file2中共有的行。

    有参数-1 -2 -3,分别来抑制输出对应的列。例如在我们的方法二中,实用-3参数,不输出file1和file2中共有的部分。即能达到我们本文的目的。

    因此先进行排序:

    sort 1.txt -o 1_sort.txt

    sort 2.txt -o 2_sort.txt

    再利用comm命令输出只在file2中有的行(差集):

    comm -1 -3 1_sort.txt  2_sort.txt > only_2_have_sort.txt

  • 相关阅读:
    JavaScript数组升降序排列、最大值、最小值等
    css3箭头
    隐藏显示
    最后一个 last-of-type
    jquery函数封装
    为什么要使用rem
    Git的使用--如何将本地项目上传到Github
    jQuery判断是否选中
    数组索引赋值
    HTML中input和button设置同样高度却不能等高的原因
  • 原文地址:https://www.cnblogs.com/wuyun-blog/p/11416908.html
Copyright © 2020-2023  润新知