我有一个包含大约200,000列和大约5000行的大文件。 以下是文件的简短示例,第1列和第5列重复。
Abf Bgj Csd Daa Abf Efg ...
0 1 2 1 0 1.1
2 0.1 1.2 0.3 2 1
...
以下是我需要的结果示例。原始文件中的第5列已被删除。
Abf Bgj Csd Daa Efg ...
0 1 2 1 1.1
2 0.1 1.2 0.3 1
...
有些列重复多次。 我需要使用bash工具从数据中删除重复项(保留第一个实例)。 我无法对数据进行排序,因为我需要保留订单。
答案 0 :(得分:0)
您可以使用datamash
计划:
datamash -W transpose < input.txt | datamash rmdup 1 | datamash transpose
GNU datamash是一个执行基本的命令行程序 输入文本数据的数字,文本和统计操作 文件。
<强>解释强>
datamash -W transpose < input.txt
datamash rmdup 1
- 按第一列值datamash transpose
- 交换行和列<强>输入强>
Abf Bgj Csd Daa Abf Efg
0 1 2 1 0 1.1
2 0.1 1.2 0.3 2 1
<强>输出强>
Abf Bgj Csd Daa Efg
0 1 2 1 1.1
2 0.1 1.2 0.3 1