【发布时间】:2013-05-21 11:14:29
【问题描述】:
我有两个文本文件,它们都有索引行。我想比较 file1 和 file2 并将相似的行发送到一个新的文本文件。我已经在谷歌上搜索了一段时间,并且一直在尝试各种形式的 grep,但我觉得我已经过头了。我最终想要的是看到 file2 中出现在 file1 中的 'Mon-######' 并打印 file1 中对应的行。
(文件比较大,为了简洁,我把它们删掉了)
为了更清晰:
file1 具有以下形式的条目:
Mon-000101 100.27242 9.608597 11.082 10.034
Mon-000102 100.18012 9.520860 12.296 12.223
file2 具有以下形式的条目:
Mon-000101
Mon-000171
因此,如果 file2 中的标识符(例如 Mon-000101)列在 file1 中,我希望以 Mon-000101 开头的整行打印到单独的文件中。如果它没有在 file2 中列出,则可以丢弃它。
因此,如果文件仅与上述文件一样大,则新生成的文件将具有单个条目
Mon-000101 100.27242 9.608597 11.082 10.034
因为这是两者唯一的共同点。
【问题讨论】:
-
你试过用python吗?读取第二个文件以创建出现的 Mon-xxxx 列表,然后读取第一个文件,拆分每一行并检查第一个字段是否出现在该列表中
-
请编辑问题以澄清:您的意思是 相同 行(在这种情况下
comm或diff应该有效)还是真的只是“相似”?如果是后者,请详细说明您的相似性概念(编辑距离,相同的字母,相同的语义,什么?)