Когда мы хотим в конечном итоге получить данные 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 ({};...)
-выполнение операции сокращения списка введенных чисел
Использование Миллера(https://github.com/johnkerl/miller)
mlr --t2c cat goods.txt >goods.csv
у вас будет такой выводhttps://gist.github.com/aborruso/fab6a48a390a9c54de55dece9141bea6
Вы хотите?
Следующая утилита 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 )
===========