【问题标题】:Match words from 2 files匹配来自 2 个文件的单词
【发布时间】:2015-09-30 14:43:26
【问题描述】:

我有 2 个 txt 文件(words.txt 和 fail.txt)

words.txt

level4:the
level4:of
level4:and
level4:to
level4:a
level4:in
level4:for
level4:is
level4:on
level4:that
level4:by
level4:this
level4:with
level4:i
level4:you

失败.txt

the
of
and
to
a
in

我如何获得一个列表,该列表将包含 words.txt 中的所有列表,但 fail.txt 中的列表除外? 结果我需要获得的示例

level4:for
level4:is
level4:on
level4:that
level4:by
level4:this
level4:with
level4:i
level4:you

谢谢。

【问题讨论】:

  • 你有 Javascript 和 Bash 标签。你想用哪一个来解析这个?
  • @MikeC 没关系,女巫会更快更轻松地解决这个问题。

标签: javascript bash parsing text-processing


【解决方案1】:

使用 awk:

awk -F: 'FNR==NR{fail[$0]++; next} !($2 in fail)' fail.txt words.txt
level4:for
level4:is
level4:on
level4:that
level4:by
level4:this
level4:with
level4:i
level4:you

说明:

-F :                         # use : as delimiter
NR == FNR {                  # While processing the fail file
  fail[$0]++                 # store the record in an array fail
  next                       # move to next record
}
{                            # while processing the words file
  !($2 in fail)              # print if 2nd field is not in fail array
}

【讨论】:

  • 谢谢,但是如何将结果保存在 .txt 文件中>?
  • 是awk -F: 'FNR==NR{fail[$0]++; next} !($2 in fail)' fail.txt words.txt > output.txt
猜你喜欢
  • 1970-01-01
  • 2021-01-27
  • 2021-02-23
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 2012-07-28
  • 1970-01-01
相关资源
最近更新 更多