Saya memiliki file csv yang memiliki daftar 600 angka dalam format berikut
442030580306
442030580307
Saya membutuhkannya untuk menampilkan file dalam satu file panjang seperti di bawah ini dari membaca angka di atas
"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
}
},
Adakah ide bagaimana cara terbaik untuk mencapai ini?
Jawaban yang Diterima:
Ketika kita ingin akhirnya mendapatkan data JSON – jq adalah alat yang tepat:
numbers.csv
isi file:
442030580306
442030580307
jq solusi:
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
Keluaran:
{
"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
– menetapkan frasa umum"new-request-uri-user-part:"
ke variabel$pfx
-
reduce [.[]|tostring][] as $n ({}; ...)
– melakukan operasi pengurangan pada daftar nomor input