我需要从 file.csv 生成一个 file.sql 文件,所以我使用这个命令:
cat file.csv |sed "s/\(.*\),\(.*\)/insert into table(value1, value2)
values\('\1','\2'\);/g" > file.sql
它工作得很好,但是当值超过 9 时(例如对于 \10、\11 等...),它只考虑第一个数字(在这种情况下是 \1)并忽略其余部分。
我想知道我是否错过了什么,或者是否有其他方法可以做到这一点。
谢谢 !
编辑:
不工作的例子:
我的 file.csv 看起来像
2013-04-01 04:00:52,2,37,74,40233964,3860,0,0,4878,174,3,0,0,3598,27.00,27
我得到了什么
插入表
val1,val2,val3,val4,val5,val6,val7,val8,val9,val10,val11,val12,val13,val14,val15,val16值 ('2013-04-01 07:39:43',
2,37,74,36526530,3877,0,0,6080,
2013-04-01 07:39:430,2013-04-01 07:39 :431,
2013-04-01 07:39:432,2013-04-01 07:39:433,
2013-04-01 07:39:434,2013-04-01 07:39:435,
2013-04 -01 07:39:436);
在第九个元素之后,我得到第一个而不是第 10、11 个等......