Sql Awk,订单每12行插入查询

Sql Awk,订单每12行插入查询,sql,perl,awk,sed,jq,Sql,Perl,Awk,Sed,Jq,我有以下脚本: curl -s 'https://someonepage=5m' | jq '.[]|.[0],.[1],.[2],.[3],.[4],.[5],.[6],.[7],.[8],.[9],.[10],.[11],.[12]' | perl -p -e 's/\"//g' |awk '/^[0-9]/{print; if (++onr%12 == 0) print ""; }' 这是结果的一部分: 1517773500000 0.10250100 0.10275700 0.1024

我有以下脚本:

curl -s 'https://someonepage=5m' | jq '.[]|.[0],.[1],.[2],.[3],.[4],.[5],.[6],.[7],.[8],.[9],.[10],.[11],.[12]' | perl -p -e 's/\"//g' |awk '/^[0-9]/{print; if (++onr%12 == 0) print ""; }'
这是结果的一部分:

1517773500000
0.10250100
0.10275700
0.10243500
0.10256600
257.26700000
1517773799999
26.38912220
1229
104.32200000
10.70579910
0

1517773800000
0.10256600
0.10268000
0.10231600
0.10243400
310.64600000
1517774099999
31.83806883
1452
129.70500000
13.29758266
0

1517774100000
0.10243400
0.10257500
0.10211800
0.10230000
359.06300000
1517774399999
36.73708621
1296
154.78500000
15.84041910
0
我想在MySQL数据库中插入此数据。我希望每一行的结果如下:

(1517773800000,0.10256600,0.10268000,0.10231600,0.10243400,310.64600000,1517774099999,31.83806883,1452,129.70500000,13.29758266,0)

(1517774100000,0.10243400,0.10257500,0.10211800,0.10230000,359.06300000,151774399999,36.73708621,1296,154.78500000,15.84041910,0)
我需要合并行每12行,任何可以帮助我得到这个结果

$ awk 'BEGIN {RS=""; OFS=","} {$1=$1; $0="("$0")"}1' file
(1517773500000,0.10250100,0.10275700,0.10243500,0.10256600,257.26700000,1517773799999,26.38912220,1229,104.32200000,10.70579910,0)
(1517773800000,0.10256600,0.10268000,0.10231600,0.10243400,310.64600000,1517774099999,31.83806883,1452,129.70500000,13.29758266,0)
(1517774100000,0.10243400,0.10257500,0.10211800,0.10230000,359.06300000,1517774399999,36.73708621,1296,154.78500000,15.84041910,0)
RS=”“
将以一个或多个空行分隔的行组视为记录

OFS=“,”
将输出分隔符设置为“,”

$1=$1
重建行,用输出分隔符替换输入分隔符

$0=“(“$0”)”
用帕伦斯唱片环绕唱片

1
打印记录

RS=”“
将以一个或多个空行分隔的行组视为记录

OFS=“,”
将输出分隔符设置为“,”

$1=$1
重建行,用输出分隔符替换输入分隔符

$0=“(“$0”)”
用帕伦斯唱片环绕唱片

1

打印记录

这是一个全jq解决方案:

.[] | .[0:12] | @tsv | gsub("\t";",") | "(\(.))"
在示例中,所有子阵列的长度都为12,因此您可以删除管道的
[0:12]
部分。如果使用jq1.5或更高版本,则可以使用
join(“,”
,而不是管道的@tsv|gsub部分。例如,您可能需要考虑:

.[] | join(“,”) | “(\(.))”.   # jq 1.5 or later
调用:使用-r命令行选项

样本输出:

(1517627400000,0.10452300,0.10499000,0.10418200,0.10449400,819.50400000,1517627699999,85.57150693,2340,452.63400000,47.27213035,0)
(1517627700000,0.10435700,0.10449200,0.10366000,0.10370000,717.37000000,1517627999999,74.60582079,1996,321.25500000,33.42273846,0)
(1517628000000,0.10376600,0.10390000,0.10366000,0.10370400,519.59400000,1517628299999,53.88836170,1258,239.89300000,24.88613854,0)

以下是一个全jq解决方案:

.[] | .[0:12] | @tsv | gsub("\t";",") | "(\(.))"
在示例中,所有子阵列的长度都为12,因此您可以删除管道的
[0:12]
部分。如果使用jq1.5或更高版本,则可以使用
join(“,”
,而不是管道的@tsv|gsub部分。例如,您可能需要考虑:

.[] | join(“,”) | “(\(.))”.   # jq 1.5 or later
调用:使用-r命令行选项

样本输出:

(1517627400000,0.10452300,0.10499000,0.10418200,0.10449400,819.50400000,1517627699999,85.57150693,2340,452.63400000,47.27213035,0)
(1517627700000,0.10435700,0.10449200,0.10366000,0.10370000,717.37000000,1517627999999,74.60582079,1996,321.25500000,33.42273846,0)
(1517628000000,0.10376600,0.10390000,0.10366000,0.10370400,519.59400000,1517628299999,53.88836170,1258,239.89300000,24.88613854,0)

你在jq做任何事情都可能会更好。请您根据hi@peak发布一个输入示例,这是示例:[链接]您最好在jq中做所有事情。请您根据hi@peak发布一个输入示例,这是示例:[链接]谢谢jas,它的工作,我用jq@peak.Great解决了。我同意jq解决方案在这种情况下是更好的选择。谢谢jas,它的工作,我用@peak.Great的jq解决方案解决了。我同意在这种情况下,jq解决方案是更好的选择。