【问题标题】:Check if word from file1 one exist in file2 [closed]检查文件1中的单词是否存在于文件2中[关闭]
【发布时间】:2013-03-03 15:01:26
【问题描述】:

我有两个文件。 file1.txt 包含:

hello
world
france

file2.txt 包含:

hello
germany
france

我想弄清楚如何才能获得 file1.txt 中不存在的单词 germany

任何语言

【问题讨论】:

  • file2中file1中缺少“world”这个词怎么办?您的问题文本与您的示例不匹配。
  • 在 php 中,使用 file_get_content() 并使用 explode() 将它们转换为数组,然后使用 if-else 语句和其他进行比较

标签: php perl bash compare


【解决方案1】:

我会推荐使用comm

comm -13 <(sort -u /tmp/list1) <(sort -u /tmp/list2) 

【讨论】:

  • 我不需要两个文件之间的区别。我需要和我的例子完全一样
  • comm 仅适用于排序文件
  • comm -13
  • 这将在运行中对其进行排序,而不是实际“真正”对文件进行物理排序......
  • @user2023424 您的示例与您问题主题中的文字相反。您在两个文件中都有唯一的文本。您是否不小心颠倒了 file1 和 file2 的名称?或者你真的想将“世界”识别为一段奇怪的文字,就像你的主题文字所暗示的那样?
【解决方案2】:

这条短线应该适合你:

 grep -Fwvf file1 file2

或更长的线:

 awk 'NR==FNR{a[$0];next}!($0 in a)' file1 file2

两个命令输出:

germany

【讨论】:

    【解决方案3】:

    Perl:

    ++$file1{$_} while <$fh1>;
    while (<$fh2>) {
        print if !$file1{$_};
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      相关资源
      最近更新 更多