【问题标题】:Get MINUS data beween two files in UNIX获取 UNIX 中两个文件之间的 MINUS 数据
【发布时间】:2015-09-14 07:35:55
【问题描述】:

我在 Unix 中有两个文件。

文件 1 包含:

1.- Jhon
2.- Peter
3.- Marie

文件 2 包含:

2.- Peter
5.- Luouis

我想从这两个文件中创建一个新文件。 我想要的结果是:

文件 3:

1.- Jhon
3.- Marie

基本上结果如下:

但不幸的是,结果是这样的:

文件 3:

1.- Jhon
3.- Marie
5.- Luouis

我想要文件 1 到文件 3 的 MINUS,而不是两个文件之间的 DISTINCT

我使用的命令是:

cat file1 file2 | sort  | uniq -u  > file3

对此有什么建议吗?

【问题讨论】:

    标签: unix cat


    【解决方案1】:

    你可以这样试试:

    comm -23 file1.txt file2.txt
    

    来自文档:

    姓名
    comm - 逐行比较两个排序的文件

    概要
    comm [选项]... 文件 1 文件 2

    ......

    -1 抑制 FILE1 独有的行

    -2 抑制 FILE2 独有的行

    -3 禁止出现在两个文件中的行

    或者你可以这样尝试:

    fgrep -v -f file1 file2
    

    【讨论】:

    • 您好,但是我想将这种差异的结果保留在 file3 中。这是可能的?我不想修改file1和file2
    • @KhristianLiahut:- 然后你可以简单地将它添加到 3 个文件中:comm -2 -3 <(sort file1) <(sort file2) > file3
    猜你喜欢
    • 2013-04-02
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2013-11-26
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多