Невозможно просто использовать tr для преобразования файла переменных с разделителями табуляции в файл переменных с разделителями-запятыми.

Когда мы хотим в конечном итоге получить данные 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 ({};...)-выполнение операции сокращения списка введенных чисел

0
25.07.2019, 14:26
2 ответа

Использование Миллера(https://github.com/johnkerl/miller)

mlr --t2c cat goods.txt >goods.csv

у вас будет такой выводhttps://gist.github.com/aborruso/fab6a48a390a9c54de55dece9141bea6

Вы хотите?

0
28.04.2021, 23:31

Следующая утилита csvkit корректно преобразует файл.txt в.csv:

csvformat -t goods.txt

Зарегистрирован на форумах Whirlpool .

Подробнее о формате csv здесь(конвертирует файл CSV в пользовательский выходной формат ).

Также обратите внимание на csvkit manual:

===========

Обратите внимание, что каждый инструмент csvkit выполняет следующие действия:

  • удаляет необязательные символы кавычек, если не указана опция –quoting (-u ). установить, чтобы изменить это поведение

  • изменяет разделитель полей на запятую, если разделитель ввода установлен с помощью –delimiter (-d )или –tabs (-t )опции

  • изменяет разделитель записи на перевод строки

  • меняет цитату символа в двойную -кавычку, если символ установлен с помощью опция --quotechar (-q )

  • меняет кодировку символов на UTF -8, если входная кодировка установлена ​​опцией –encoding (-e )

===========

0
28.04.2021, 23:31

Теги

Похожие вопросы