我有一个json格式的城市和省份文件。我想将它插入我的数据库表,但结构是json格式。我需要删除一些数字并添加结构以将其正确插入我的表格。
这是我档案文字的样本。
"246":"Bangued","278":"Boliney","287":"Bucay","309":"Bucloc","314":"Daguioman","319":"Danglas","327":"Dolores","343":"LaPaz","356":"Lacub","363":"Lagangilang","381":"Lagayan","387":"Langiden","394":"Licuan~Baay","406":"Luba","415":"Malibcong","428":"Manabo","440":"Penarrubia","450":"Pidigan","466":"Pilar","486":"Sallapadan","496":"San Isidro","506":"San Juan","526":"San Quintin","533":"Tayum","545":"Tineg","556":"Tubo","567":"Villaviciosa"
我想把它变成:
(NULL, "1", "Bangued"),
(NULL, "1", "Boliney"),
(NULL, "1", "Bucay"),
(NULL, "1", "Bucloc"),
(NULL, "1", "Daguioman"),
(NULL, "1", "Danglas"),
(NULL, "1", "Dolores"),
(NULL, "1", "La Paz"),
(NULL, "1", "Lacub"),
(NULL, "1", "Lagangilang"),
(NULL, "1", "Lagayan"),
(NULL, "1", "Langiden"),
(NULL, "1", "Licuan~Baay"),
(NULL, "1", "Luba"),
(NULL, "1", "Malibcong"),
(NULL, "1", "Manabo"),
(NULL, "1", "Penarrubia"),
(NULL, "1", "Pidigan"),
(NULL, "1", "Pilar"),
(NULL, "1", "Sallapadan"),
(NULL, "1", "San Isidro"),
(NULL, "1", "San Juan"),
(NULL, "1", "San Quintin"),
(NULL, "1", "Tayum"),
(NULL, "1", "Tineg"),
(NULL, "1", "Tubo"),
(NULL, "1", "Villaviciosa"),
你能告诉我如何在正则表达式中这样做吗?
答案 0 :(得分:0)
sed 's/"[0-9]*":\("[a-zA-Z ~]*"\),/(NULL, "1", \1),\
/g'
反斜杠后跟一个换行符。
答案 1 :(得分:0)
tr
和sed
的这种组合适用于您的示例数据:
tr ',' '\n' < yourfile.txt | tr ':' ',' | sed 's/^/\(NULL, /g;s/$/\),/g;s/"[0-9]*"/"1" /g'
但是有一个问题,主要是如果任何字符串包含:
或,
那么它就会搞砸了。