我正在处理包含由行分隔的数据的大型文本文件(~20MB).大多数数据条目是重复的,我想删除这些重复只保留一个副本.
此外,为了使问题稍微复杂一些,重复一些条目并附加额外的信息.在这种情况下,我需要保留包含额外信息的条目并删除旧版本.
我需要离开这个:
__PRE__对此:
__PRE__NB.最后的订单无关紧要.
有效的方法是什么?
我可以使用awk,python或任何标准的linux命令行工具.
谢谢.
NPE*_*NPE 12
如何(在Python中):
prev = None
for line in sorted(open('file')):
line = line.strip()
if prev is not None and not line.startswith(prev):
print prev
prev = line
if prev is not None:
print prev
Run Code Online (Sandbox Code Playgroud)
如果您发现内存使用问题,您可以使用Unix sort(基于磁盘)进行排序作为预处理步骤,并更改脚本以使其不会将整个文件读入内存.
| 归档时间: |
|
| 查看次数: |
7189 次 |
| 最近记录: |