【发布时间】:2016-12-09 06:42:09
【问题描述】:
我有一个大的 CSV 文件,其中包含如下段落:
first line1
second line1
third line1
fourth line1
first line2
second line2
third line2
fourth line2
处理后我想翻译成这样:
first line1,second line1,third line1,fourth line1
first line2,second line2,third line2,fourth line2
注意:第一行、第二行等包含特殊字符,如 . , " :
我在想一个选项可能是从第二行 1 中找到“第二个”单词并将其前面的“输入”替换为逗号,这样第二行 1 将位于第一行 1 的右侧。
我该怎么做?
确实,上面的例子很可能不是真实的ACTUAL数据,这里是:
137822118,user,User,192.168.100.20,2016-07-25 23:19:05 DST,iScript,iScript send MML command,B12345-BXL_ABCD_BD,Succeeded,"NE Name:B12345-BXL_ABCD_BD
MML Command:LST DEVIP:OPONEMS=""user"", IPOFEMSWS=""192.168.100.20"";
MML Result:Successful.
",2016-07-25 23:19:05 DST
137821234,user,User,192.168.100.21,2016-07-25 23:19:05 DST,iScript,iScript send MML command,B12345-BXL_ASDF_BD,Succeeded,"NE Name:B12345-BXL_ASDF_BD
MML Command:LST DEVIP:OPONEMS=""user"", IPOFEMSWS=""192.168.100.21"";
MML Result:Successful.
",2016-07-25 22:18:05 DST
CSV 文件包含大量此类段落。
输出应该是(一行一行):
137822118,user,User,192.168.100.20,2016-07-25 23:19:05 DST,iScript,iScript send MML command,B12345-BXL_ABCD_BD,Succeeded,"NE Name:B12345-BXL_ABCD_BD,MML Command:LST DEVIP:OPONEMS=""user"", IPOFEMSWS=""192.168.100.20""; MML Result:Successful. ",2016-07-25 23:19:05 DST
137821234,user,User,192.168.100.21,2016-07-25 23:19:05 DST,iScript,iScript send MML command,B12345-BXL_ASDF_BD,Succeeded,"NE Name:B12345-BXL_ASDF_BD,MML Command:LST DEVIP:OPONEMS=""user"", IPOFEMSWS=""192.168.100.21""; MML Result:Successful. ",2016-07-25 22:18:05 DST
非常感谢您的帮助!
我尝试了您的解决方案,它几乎可以工作,但不是预期的结果。 由于这里的发布格式,我给您的示例似乎与源文件略有不同。
请在下面找到真正的源CSV文件(只有几行,因为完整的文件包含超过一百万)
https://www.wetransfer.com/downloads/637b36b2148550ad090c22c9e8297a9c20160804081835/48b90b
抱歉造成误会,再次感谢!
【问题讨论】:
-
一组总是有 4 行吗?请显示实际数据,以便我们查看特殊字符的位置等。
-
这是stackoverflow.com/q/38731863/1745001 的副本,但我无法将其作为副本关闭,因为那里的答案尚未被投票或接受。