파일에서 데이터를 읽는 텍스트 만들기

파일에서 데이터를 읽는 텍스트 만들기

다음 형식의 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

관련 정보