Как преобразовать TSV-файл в JSON-файл с помощью командной строки.

export FIELDS=field_1,field_2,field_3; cat input_file.tsv| ruby -rjson -ne 'puts ENV["FIELDS"].split(",").zip($_.strip.split("\t")).inject({}){|h,x| h[x[0]]=x[1];h}.to_json' > output_file.json


Данная команда преобразует TSV-файл (где значения разделены табуляцией) в JSON-файл. Команда начинается с определения переменной окружения FIELDS, где вы указываете список полей, разделенных запятыми. Затем команда cat используется для чтения содержимого входного файла input_file.tsv.

Далее используется Ruby для обработки каждой строки входного файла. Команда извлекает значения из переменной окружения FIELDS и разбивает их на отдельные поля. Затем она объединяет эти значения с соответствующими значениями из текущей строки TSV, создавая словарь (hash). И наконец, результат преобразуется в формат JSON и записывается в файл output_file.json.

Альтернативой этой команде может быть использование инструментов для обработки данных, таких как awk или sed, в сочетании с инструментом, поддерживающим работу с JSON, например, jq.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *