У меня есть CSV, который нужно преобразовать в простой формат с разделением новой строки, чтобы вставить в другой скрипт, но столкнулся со странной проблемой.
Содержимое CSV:
"1. ID","2. Height","3. Gender","4. Age"
"<1111111111>","5ft. 10.0in.","M"," 15.0"
"<2222222222>","6ft. 0in.","M"," 22.0"
Версия 1 команды CLI:
cat source.csv | sed 's/[\"<>]//g' | ~/projects/dp/vendor/jq/1.5/jq --raw-input --compact-output 'split("\n") | .[1:] | map(split(",")) | map({"phone_number":.[0],"opt_in":"yes"}) | .[]'
Выход версии 1: нет
Версия 2 команды CLI:
cat source.csv | sed 's/[\"<>]//g' | ~/projects/dp/vendor/jq/1.5/jq --raw-input --compact-output 'split("\n") | .[0:] | map(split(",")) | map({"phone_number":.[0],"opt_in":"yes"}) | .[]'
Выход версии 2:
{"phone_number":"1. ID","opt_in":"yes"}
{"phone_number":"1111111111","opt_in":"yes"}
{"phone_number":"2222222222","opt_in":"yes"}
Насколько я понимаю,. [1:] говорит JQ только анализировать строки (разделенные новой строкой) после строки № 1, однако строка № 1 будет диктовать ссылки (возможность ссылаться на номер_фона).
Так почему же версия 1 ничего не выводит?