我有一個檔案(file.txt),例如:
field1|field2|field3
field1|field2|field3
field1|field2|field3
(實際上是 83 個欄位,200k 行)我需要將其轉換為:
field3.field2|{"myname1":"field1","myname2":"field2","myname3":"field3"}
field3.field2|{"myname1":"field1","myname2":"field2","myname3":"field3"}
field3.field2|{"myname1":"field1","myname2":"field2","myname3":"field3"}
我目前正在分幾個步驟進行操作,但這需要很長時間:
cat file.txt |jq -nR '[inputs | split("|") | {
"myname1": .[0],
"myname2": .[1],
"myname3": .[2]}]' > /var/tmp/tempfile.txt
cat /var/tmp/tempfile.txt | jq -c '.[]' |while read row;do
key=$(echo "$row"|jq -r '(.myname3) "." (.myname2)')
echo "$key|$row"
done
有沒有更好的方法用 jq 或其他東西(在 Linux 下)來實作同樣的目標?
謝謝
uj5u.com熱心網友回復:
這是一個使用jq字串插值和轉換為 JSON的解決方案tojson:
jq -Rr './"|" | "\(.[2]).\(.[1])|\({
"myname1": .[0],
"myname2": .[1],
"myname3": .[2]
} | tojson)"' file.txt
field3.field2|{"myname1":"field1","myname2":"field2","myname3":"field3"}
field3.field2|{"myname1":"field1","myname2":"field2","myname3":"field3"}
field3.field2|{"myname1":"field1","myname2":"field2","myname3":"field3"}
演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/460580.html
上一篇:如何在熊貓資料框中創建json列
