【发布时间】:2017-10-06 06:31:45
【问题描述】:
我有一个需要导入 SQL 数据库的大量文本文件。 问题是该文件每条记录包含几行,所以我需要每条记录单行。
文本文件现在看起来像这样;
L;1;100;Product1;Text;2;Text2;;20171006;;;1;;76;;;U;1000;;
T;TEXT2;177
T;TEXT;130
T;TEXT;156x55
O;2;40448652267;43242;
O;3;0481439;344;
L;1;100;Product2;Text;2;Text2;;20171006;;;1;;76;;;U;1000;;
T;TEXT2;177
T;TEXT;130
T;TEXT;156x55
O;2;40448652267;43242;
O;3;0481439;344;
L;1;100;Product2;Text;2;Text2;;20171006;;;1;;76;;;U;1000;;
T;TEXT2;177
T;TEXT;130
T;TEXT;156x55
O;2;40448652267;43242;
O;3;0481439;344;
L;1;100;Product3;Text;2;Text2;;20171006;;;1;;76;;;U;1000;;
T;TEXT2;177
T;TEXT;130
T;TEXT;156x55
O;2;40448652267;43242;
O;3;0481439;344;
L;1;100;Product4;Text;2;Text2;;20171006;;;1;;76;;;U;1000;;
T;TEXT2;177
T;TEXT;130
T;TEXT;156x55
O;2;40448652267;43242;
O;3;0481439;344;
我需要它以这样的方式结束,以便将其导入 SQL 数据库;
是否有任何 SED 命令可用于此转换,还是更好的方法?
L;1;100;Product1;Text;2;Text2;;20171006;;;1;;76;;;U;1000;;TEXT2;177;TEXT;130;TEXT;156x55;2;40448652267;43242;;3;0481439;344;
L;1;100;Product2;Text;2;Text2;;20171006;;;1;;76;;;U;1000;;TEXT2;177;TEXT;130;TEXT;156x55;2;40448652267;43242;;3;0481439;344;
L;1;100;Product3;Text;2;Text2;;20171006;;;1;;76;;;U;1000;;TEXT2;177;TEXT;130;TEXT;156x55;2;40448652267;43242;;3;0481439;344;
L;1;100;Product4;Text;2;Text2;;20171006;;;1;;76;;;U;1000;;TEXT2;177;TEXT;130;TEXT;156x55;2;40448652267;43242;;3;0481439;344;
感谢所有有关如何以最佳方式将此数据导入 mySQL 数据库的提示 :)
【问题讨论】:
-
用 sed 可能可行,但更适合 awk...
-
欢迎栈溢出,感谢使用代码标签。请检查我的 awk 代码一次,如果这对您有帮助,请告诉我。
-
除了添加您尝试过的内容之外,您还应该添加转换的详细信息 - 例如从非
L;行中删除第一个字段 -
根据您的输出 - 如果有其他要求,您应该提到:是否真的应该删除
T;和O;。更新您的问题以使其更清晰