我有以下脚本:
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行合并一行,任何可以帮助我获得这个结果。
答案 0 :(得分:1)
$ 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 =&#34;&#34; 强>:
处理分隔一个或多个空行的行组作为记录
<强> OFS =&#34;&#34; 强>
将输出分隔符设置为&#34;,&#34;
<强> $ 1 = $ 1 强>
重构该行,用输出分隔符替换输入分隔符
<强> $ 0 =&#34;(&#34; $ 0#34)&#34; 强>
用parens围绕记录
<强> 1 强>
打印记录
答案 1 :(得分:1)
这是一个全jq解决方案:
.[] | .[0:12] | @tsv | gsub("\t";",") | "(\(.))"
在示例中,所有子数组的长度均为12,因此您可以删除管道的.[0:12]
部分。如果使用jq 1.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)