Mám soubor csv, který má seznam 600 čísel v následujícím formátu
442030580306
442030580307
Potřebuji, aby byl výstup souboru v jednom dlouhém souboru, jako je ten níže, ze čtení výše uvedených čísel
"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
}
},
Máte nějaké nápady, jak toho nejlépe dosáhnout?
Přijatá odpověď:
Když chceme případně získat data JSON – jq je správný nástroj:
numbers.csv
obsah souboru:
442030580306
442030580307
jq řešení:
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
Výstup:
{
"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
– přiřazení běžné fráze"new-request-uri-user-part:"
do proměnné$pfx
-
reduce [.[]|tostring][] as $n ({}; ...)
– provedení operace zmenšení na seznamu vstupních čísel