次の形式の600個の番号のリストを含むcsvファイルがあります
442030580306
442030580307
上記の数字を読んで、以下のような1つの長いファイルにファイルを出力するために必要です
"new-request-uri-user-part:442030580306": {
"query_string": {
"query": "new-request-uri-user-part:442030580306",
"analyze_wildcard": true
}
},
"new-request-uri-user-part:442030580307": {
"query_string": {
"query": "new-request-uri-user-part:442030580307",
"analyze_wildcard": true
}
},
これを達成するための最善の方法はありますか?
承認された回答:
最終的にJSONデータを取得したい場合– jq 適切なツールです:
numbers.csv
ファイルの内容:
442030580306
442030580307
jq 解決策:
jq -s '"new-request-uri-user-part:" as $pfx | reduce [.[]|tostring][] as
$n ({}; .[($pfx + $n)] |= {"query_string": {"query": ($pfx + $n), "analyze_wildcard": true }})' numbers.csv
出力:
{
"new-request-uri-user-part:442030580306": {
"query_string": {
"query": "new-request-uri-user-part:442030580306",
"analyze_wildcard": true
}
},
"new-request-uri-user-part:442030580307": {
"query_string": {
"query": "new-request-uri-user-part:442030580307",
"analyze_wildcard": true
}
}
}
-
"new-request-uri-user-part:" as $pfx
–一般的なフレーズ"new-request-uri-user-part:"
を割り当てる 変数$pfx
へ -
reduce [.[]|tostring][] as $n ({}; ...)
–入力番号のリストに対して削減操作を実行する