【发布时间】:2017-07-27 09:44:22
【问题描述】:
我有一个 csv 文件,其中包含按列的数据,例如
EvtsUpdated,IR23488670,15920221,ESTIMATED
EvtsUpdated,IR23488676,11014018,ESTIMATED
EvtsUpdated,IR23488700,7273867,ESTIMATED
EvtsUpdated,IR23486360,7273881,ESTIMATED
EvtsUpdated,IR23488670,7273807,ESTIMATED
EvtsUpdated,IR23488670,9738420,ESTIMATED
EvtsUpdated,IR23488670,7273845,ESTIMATED
EvtsUpdated,IR23488676,12149463,ESTIMATED
我只想找出所有重复的行,忽略一列,即第 3 列。输出应该像
EvtsUpdated,IR23488670,15920221,ESTIMATED
EvtsUpdated,IR23488676,11014018,ESTIMATED
EvtsUpdated,IR23488700,7273867,ESTIMATED
EvtsUpdated,IR23488670,7273807,ESTIMATED
EvtsUpdated,IR23488670,9738420,ESTIMATED
EvtsUpdated,IR23488670,7273845,ESTIMATED
EvtsUpdated,IR23488676,12149463,ESTIMATED
我首先使用
在另一个文件中剪切除 3 之外的其他列cut --complement -f 3 -d, filename into another file,
然后我尝试使用 awk 命令,例如 awk -F, '{if(FNR==NR){print}}' secondfile
由于我对 awk 没有完整的了解,所以我无法做到
【问题讨论】:
-
看看comm "Common - 逐行比较两个排序的文件并写入标准输出:常见的行加上唯一的行。"
-
无法通过 comm 命令解决
-
@ggupta
EvtsUpdated,IR23488700,7273867,ESTIMATED不重复。为什么它仍然是输出的一部分? -
什么是column 3 你的意思是零索引吗?
-
@k-5 不是,索引为 0,在上面的数据中它是倒数第二列