【发布时间】:2015-06-21 02:30:11
【问题描述】:
我有一个 csv 文件,其中包含 65000 行(大小约为 28 MB)。在每一行中,都给出了开头的特定路径,例如“c:\abc\bcd\def\123\456”。现在假设路径“c:\abc\bcd\”在所有行中都是通用的,其余内容不同。我必须使用 shell 脚本从所有行中删除公共部分(在本例中为“c:\abc\bcd\”)。例如CSV文件的内容如前所述。
C:/Abc/Def/Test/temp\.\test\GLNext\FILE0.frag 0 0 0
C:/Abc/Def/Test/temp\.\test\GLNext\FILE0.vert 0 0 0
C:/Abc/Def/Test/temp\.\test\GLNext\FILE0.link-link-0.frag 16 24 3
C:/Abc/Def/Test/temp\.\test\GLNext\FILE0.link-link-0.vert 87 116 69
C:/Abc/Def/Test/temp\.\test\GLNext\FILE0.link-link-0.vert.bin 75 95 61
C:/Abc/Def/Test/temp\.\test\GLNext\FILE0.link-link-0 0 0
C:/Abc/Def/Test/temp\.\test\GLNext\FILE0.link-link-6 0 0 0
在上面的例子中,我需要如下输出
FILE0.frag 0 0 0
FILE0.vert 0 0 0
FILE0.link-link-0.frag 17 25 2
FILE0.link-link-0.vert 85 111 68
FILE0.link-link-0.vert.bin 77 97 60
FILE0.link-link-0 0 0
FILE0.link 0 0 0
你们中的任何人都可以帮我解决这个问题吗?
【问题讨论】:
-
您能否编辑问题以包含几行示例输入和预期输出?公共子串是提前知道的还是应该从输入中计算出来的?
-
如果不按照@Wintermute 的建议进行操作,您最终会得到一个答案,该答案可能会为某些特定输入集产生您想要的输出,但这是一种绝对荒谬的获取方式,并且可能行不通所有可能的输入。