【发布时间】:2011-05-03 17:36:50
【问题描述】:
我正在尝试处理纯文本文件。它基本上是名称和相关数字字段的索引,格式如下:
诺沃谢尔斯基,马修,484、584、777
诺沃谢尔斯基,马修,1151
努内斯,保利诺,116
努斯鲍姆, 迈克, 1221, 444,
努斯鲍姆,迈克,156 岁
我想处理成这个
诺沃谢尔斯基,马修,484、584、777、1151
努内斯,保利诺,116
努斯鲍姆,迈克,156、444、1221
如您所见,这些行的结尾不一致:有些可能是空格,有些可能是换行符,有些可能是逗号。实际上,我需要合并以重复全名开头的行,丢弃多余的名称条目,同时合并并保留数字字段的数字顺序。
我的直觉告诉我要快速学习一些 perl 或 awk,但我的技能组合对于两者来说都是空的。我对两者都进行了研究,经过一些搜索和阅读后,无法找到明确或干净的解决方案。
因此,我的问题是:对于我可以有效学习并且足以完成这项任务的工作的最佳工具是什么?此外,鉴于建议的工具,是否有关于如何解决问题的任何建议?
当然,我可以手动编辑这个文件,但这不是很有趣,而且似乎是一种非常愚蠢、笨拙的解决问题的方法。我以这个任务为借口来学习一些关于文本处理的知识,因为这感觉像是一个可能有一个很好的现有工具来解决的问题。
任何指针?
【问题讨论】:
-
需要合并的行是否总是连续的?
-
重复行有时会有重复的数字需要删除吗?
-
行总是连续的,不应该有重复的数字,尽管这还没有经过眼球验证。
标签: regex perl sorting sed awk