【发布时间】:2014-12-27 09:55:59
【问题描述】:
我该怎么做:
将固定长度文件转换为 csv 文件。
根据列长度从输入文件(固定长度文件)中拆分记录。
我尝试使用 'awk' 转换文件,但是由于记录中的空格,结果不正确。
输入文件:
4002000W1ABCDABCD7821 12345671LSN12301630 00000000000091640
00409164
4002000W1ABCDABCD7821 12345671LSN12301630 00000000000091640
00409164
4002000W1ABCDABCD7821 12345671LSN12301630 00000000000091640
00409164
4002000W1ABCDABCD7821 12345671LSN12301630 00000000000091640
00409164
4002000W1ABCDABCD7821 12345671LSN12301630 00000000000091640
004009164
4002000W1ABCDABCD7821 12345671LSN12301630 00000000000091640
004009164
第一条记录从4002000W1ABCDABCD7821开始,结束于 00409164
一共有6条记录。
输入文件包含表的 6 条记录。
记录有40多列,我只提到了其中的几个。
列的长度固定如下:
ABC_ID(9), def_sc(8), sde_hd(8),mln_hfg(12), ghi_jkl(13),ijk_klm(6),pqr_xyz(10)
预期输出如下:
输出文件:
ABC_ID, def_sc, sde_hd, mln_hfg, ghi_jkl, ijk_klm, pqr_xyz
4002000W1, ABCDABCD,78211234, 56702291LSN1, 2301630000000, 000916, 4000409164
4002000W1, ABCDABCD,78211234, 56702291LSN1, 2301630000000, 000916, 4000409164
4002000W1, ABCDABCD,78211234, 56702291LSN1, 2301630000000, 000916, 4000409164
4002000W1, ABCDABCD,78211234, 56702291LSN1, 2301630000000, 000916, 4000409164
4002000W1, ABCDABCD,78211234, 56702291LSN1, 2301630000000, 000916, 4000409164
4002000W1, ABCDABCD,78211234, 56702291LSN1, 2301630000000, 000916, 4000409164
这是否可以使用 sed 命令来实现。
请提出建议。
【问题讨论】:
-
请使用代码标签
{}编辑您的输入文件数据,就像我在输出文件上所做的那样。删除输入文件中的所有>。 -
“56789071......”在哪个字符处停止? 6 条记录需要 4 列还是 6 列?