Ich habe eine CSV-Datei mit einer Liste von 600 Nummern im folgenden Format
442030580306
442030580307
Ich brauche es, um die Datei in einer langen Datei wie unten aus dem Lesen der obigen Zahlen auszugeben
"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
}
},
Irgendwelche Ideen, wie man das am besten erreicht?
Akzeptierte Antwort:
Wenn wir schließlich JSON-Daten erhalten möchten – jq ist das richtige Werkzeug:
numbers.csv
Dateiinhalt:
442030580306
442030580307
jq Lösung:
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
Die Ausgabe:
{
"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
– Zuweisen des gemeinsamen Ausdrucks"new-request-uri-user-part:"
in die Variable$pfx
-
reduce [.[]|tostring][] as $n ({}; ...)
– Durchführen der Reduktionsoperation auf der Liste der eingegebenen Zahlen