다음 형식의 600개 숫자 목록이 포함된 CSV 파일이 있습니다.
442030580306
442030580307
아래와 같이 위의 숫자를 읽어서 파일을 긴 파일로 출력하려면 필요합니다.
"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
}
},
이것을 가장 잘 달성하는 방법에 대한 아이디어가 있습니까?
답변1
마침내 JSON 데이터를 얻고 싶을 때 -잭다음에 적합한 도구입니다.
numbers.csv
문서 내용:
442030580306
442030580307
잭해결책:
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 ({}; ...)
- 입력된 숫자 목록에 대해 축소 작업을 수행합니다.
답변2
간단하게 printf를 사용하세요:
while read number
do
printf ' "new-request-uri-user-part:%s": {
"query_string": {
"query": "new-request-uri-user-part:%s",
"analyze_wildcard": true
}
},
' "$number" "$number"
done < input