我有一个csv文件,前几个字符是YYYYMMDD-HHMMSS格式 e.g。
20150710-071458source,data1,data2,data3
20150710-091458source,data1,data2,data3
20150810-101458source,data1,data2,data3
20150910-103058source,data1,data2,data3
我想将第一个字段拆分为新列以进行进一步处理。预期结果将是
2015,07,10,07,14,58,source,data1,data2,data3
2015,07,10,09,14,58,source,data1,data2,data3
2015,08,10,10,14,58,source,data1,data2,data3
2015,09,10,10,30,58,source,data1,data2,data3
如何将逗号插入固定位置?有人建议使用sed。但我找不到确切的参数。有人可以帮助使用sed,awk,切割什么吗?非常感谢你! ^ _ ^
答案 0 :(得分:0)
如果您想使用sed
,可以这样做:
centos6:~-> echo 20150710-071458source,data1,data2,data3 | sed 's/.\{4,4\}/&,/;s/.\{7,7\}/&,/;s/-/,/;s/.\{13,13\}/&,/;s/.\{16,16\}/&,/;s/.\{19,19\}/&,/'
2015,07,10,07,14,58,source,data1,data2,data3
centos6:~->
答案 1 :(得分:0)
这也不是很好,但它有效......
cat test.file | awk '{print substr($1, 0, 8)","substr($1, 10, 2)","substr($1, 12, 2)","substr($1, 14, 2)","substr($1, 16)}';