linux - 如何在 Linux 中删除具有 n 列的相等行
问题描述
我有一个包含 3045 行和 900.000 列的文件(df.txt),但有 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
。如果该列尚不存在,则将其保存并打印该行。所以它打印任何重复键的第一个实例。
推荐阅读
- javascript - 为什么Javascript不能读取占用的Value?TypeError:无法读取未定义的属性“权重”
- javascript - 如何在客户端设置默认 HTTP 标头并使用 Meteor 在服务器方法中访问它们?
- .net - .Net core 3.1 发布后未找到 Antiforgery.dll
- javascript - 为 Struts2 迭代器列表实现分页
- sql - ORA-00984: 在插入不包括序列触发器的数据时,此处不允许列
- javascript - 如何从引导吐司消息中删除任何间距?
- python-3.x - 代理没有连接。Python 3 请求模块
- c++ - 修改成员变量的 C++ 回调
- python - Python 对象返回一个列表
- python - 在 Python 中以 1000 秒测量两个经纬度点之间的距离