问题描述
我有一个文件(df.txt),其中包含3045行和900.000列,但包含145个重复行,因此:
1234 1111122233330000000000003333311122222............................
1235678 00000000000000000000000111111122222............................
4567 1122222222222222222222223333333333333............................
3456 111111111111111122222222222222222222............................
1234 1111122233330000000000003333311122222............................
1235678 00000000000000000000000111111122222............................
3423 33333333300000000011111112222222222222............................
2211 11111111111111111111111111111111111111............................
因此,新文件(dffinal.txt)在第1列中不应包含重复信息,例如:
1234 1111122233330000000000003333311122222............................
1235678 00000000000000000000000111111122222............................
4567 1122222222222222222222223333333333333............................
3456 111111111111111122222222222222222222............................
3423 33333333300000000011111112222222222222............................
2211 11111111111111111111111111111111111111............................
我尝试
cat df.txt | sort |uniq > dffinal.txt
但它保持相同的行数
解决方法
您可以使用awk
检查第1列中的重复项。
awk '!a[$1] { a[$1]++; print }' df.txt > dffinal.txt
这会记住a
数组中的第一列。如果该列尚未在其中,则将其保存并打印该行。因此,它会打印出任何重复键的第一个实例。