Tengo un archivo csv que tiene una lista de 600 números en el siguiente formato
442030580306
442030580307
Lo necesito para generar el archivo en un archivo largo como el siguiente al leer los números anteriores
"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
}
},
¿Alguna idea sobre la mejor manera de lograr esto?
Respuesta aceptada:
Cuando queremos obtener eventualmente datos JSON – jq es la herramienta adecuada:
numbers.csv
contenido del archivo:
442030580306
442030580307
jq solución:
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
La salida:
{
"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
– asignando la frase común"new-request-uri-user-part:"
a la variable$pfx
-
reduce [.[]|tostring][] as $n ({}; ...)
– realizar la operación de reducción sobre la lista de números de entrada