文件如下:
INSERT INTO x VALUES (48394, '9-10-2007', 19);
INSERT INTO x VALUES (99981, '3-5-2008', 45);
我想将每行替换为:
INSERT INTO x VALUES (48394, STR_TO_DATE('9-10-2007', %d-%m-%y), 19);
INSERT INTO x VALUES (99981, STR_TO_DATE('3-5-2008', %d-%m-%y), 45);
我似乎找不到如何处理更改的字符串名称来替换
:%s/<WHAT GOES HERE>/add in STR_TO_DATE(...)/
答案 0 :(得分:1)
这是一个解决方案的示例:
:%s/\(INSERT INTO x VALUES (.*,\) '\(.*\)'\(.*\)/\1 STR_TO_DATE('\2', %d-%m-%y)\3/g
答案 1 :(得分:1)
如果您的数据结构完全一样,没有其他用'
分隔的字符串,并且内容始终是您要转换的日期,那么只需搜索'.*'
即可:
:%s/'.*'/STR_TO_DATE(&, %d-%m-%y)
更具体地说,即是否其他字符串出现在同一行:
:%s/'\d*-\d*-\d*'/STR_TO_DATE(&, %d-%m-%y)