我有一个包含大约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
...
Run Code Online (Sandbox Code Playgroud)
这是我需要的结果的一个例子.原始文件中的第5列已被删除.
Abf Bgj Csd Daa Efg ...
0 1 2 1 1.1
2 0.1 1.2 0.3 1
...
Run Code Online (Sandbox Code Playgroud)
有些列重复多次.我需要使用bash工具从数据中删除重复项(保留第一个实例).我无法对数据进行排序,因为我需要保留订单.
$ cat tst.awk
NR==1 {
for (i=1;i<=NF;i++) {
if (!seen[$i]++) {
f[++nf]=i
}
}
}
{
for (i=1;i<=nf;i++) {
printf "%s%s", $(f[i]), (i<nf?OFS:ORS)
}
}
$ awk -f tst.awk file | column -t
Abf Bgj Csd Daa Efg
0 1 2 1 1.1
2 0.1 1.2 0.3 1
Run Code Online (Sandbox Code Playgroud)