擅长:python、mysql、java
<p>以下是一个全jq解决方案,它假设调用如下:</p>
<pre><code>jq -Rcn -f program.jq sql.txt
</code></pre>
<p>请特别注意-R(“原始输入”)和-n选项。你知道吗</p>
<pre><code>def trim: sub(" *$";"") | sub("^ *";"");
# input: an array of values
def objectify($headers):
. as $in
| reduce range(0; $headers|length) as $i ({}; .[$headers[$i]] = ($in[$i]) ) ;
def preprocess:
select( startswith("|") )
| split("|")
| .[1:-1]
| map(trim) ;
reduce (inputs|preprocess) as $in (null;
if . == null then {header: $in}
else .header as $h
| .table += [$in|objectify($h)]
end )
| .table
</code></pre>