相关疑难解决方法(0)

根据一列中的重复项删除行而不进行排序

我有很大的 3 列文件(约 10,000 行),当该行第三列的内容出现在另一行的第三列中时,我想删除行。文件的大小使排序有点麻烦,我不能使用类似下面的代码,因为整行不相同;只是第 3 列的内容。

awk '!seen[$0]++' filename
Run Code Online (Sandbox Code Playgroud)

awk text-processing

38
推荐指数
2
解决办法
8万
查看次数

使用 CSV 解析器根据特定列对 CSV 行进行重复数据删除

我搜索了这个任务,发现了以下较旧的问题:

但我无法使用,awk因为我的数据是一个复杂的 CSV 文件,带有多个嵌套双引号。

假设我想对以下内容进行重复数据删除(简化情况):

Ref,xxx,zzz
ref1,"foo, bar, base",qux
ref1,"foo, bar, base",bar
ref2,aaa,bbb
Run Code Online (Sandbox Code Playgroud)

在输出中我需要它如下:

Ref,xxx,zzz
ref1,"foo, bar, base",qux
ref2,aaa,bbb
Run Code Online (Sandbox Code Playgroud)

没有awk解决方案,只能使用任何 CSV 解析器。

我尝试了以下方法:

mlr --csv uniq -a -g Ref file.csv
Run Code Online (Sandbox Code Playgroud)

但这是一个错误。

linux csv miller csvkit

6
推荐指数
2
解决办法
388
查看次数

标签 统计

awk ×1

csv ×1

csvkit ×1

linux ×1

miller ×1

text-processing ×1