【问题标题】:Removing duplicate multiply rows from CSV file using a awk使用 awk 从 CSV 文件中删除重复的乘法行
【发布时间】:2022-01-10 02:22:10
【问题描述】:

我已使用此代码从 2 个文件中删除第 3 列中的重复项

awk -F, 'NR==FNR{seen[$3]; next} !($3 in seen)' dublicates.txt need_check.csv > output.csv

但是如果我想检查多列(#2、#3 和 #4),如何检查重复项?

【问题讨论】:

  • duplicates多列的逻辑是什么?如果三列中的任何一列跨行相同,或者它们都相同?如果您可以使用实际的示例文件进行说明,将会很有帮助。
  • edit 您的问题显示minimal reproducible example 具有简洁、可测试的样本输入和预期输出,以便我们为您提供帮助。见How to Ask

标签: linux sorting awk duplicates unique


【解决方案1】:

由于您的问题含糊不清,因此有两种可能的答案。

如果您认为具有相同字段 #2、#3 和 #4 的重复记录,您应该运行:

awk -F, '{key=$2 FS $3 FS $4} NR==FNR{a[key]; next} !(key in a) dublicates.txt need_check.csv > output.csv

如果只有一个字段重复时记录是重复的,那么您必须以另一种方式对其进行编码。

在 SO 中包含输入样本和所需的相应输出是一种很好的做法。

【讨论】:

  • @EdMorton:感谢您编辑我的答案。我同意所有的变化。我还想念一个用于测试软件的输入文件样本。
猜你喜欢
  • 2021-08-20
  • 1970-01-01
  • 2018-03-24
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多