GNU/Linux >> Linux の 問題 >  >> Linux

ファイルからテキスト読み取りデータを作成しますか?

次の形式の600個の番号のリストを含むcsvファイルがあります

442030580306

442030580307

上記の数字を読んで、以下のような1つの長いファイルにファイルを出力するために必要です

         "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
            }
          },

これを達成するための最善の方法はありますか?

承認された回答:

最終的にJSONデータを取得したい場合– jq 適切なツールです:

numbers.csv ファイルの内容:

442030580306
442030580307

jq 解決策:

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 ({}; ...) –入力番号のリストに対して削減操作を実行する


Linux
  1. ファイルからGrepパターンを読み取る?

  2. STDIN からデータを読み取りながらファイルを圧縮する

  3. アセンブリ内のファイルからの読み取り

  1. ターミナルウィンドウからLinuxでファイルを作成するには?

  2. テキスト ファイルから奇数行または偶数行を削除する

  3. Linuxでテキストファイルから特定の行を表示するには?

  1. 着信メールをText/plainからText/htmlに変更しますか?

  2. データファイルからランダムに特定の数の線を描画しますか?

  3. Linuxターミナルでテキストファイルを作成する4つの方法