преобразовать файл Excel в файл разделителя каналов в Linux, используя скрипт


1

Необходимо преобразовать файл Excel в файл разделителя каналов в Linux с помощью сценария оболочки. Пожалуйста, помогите

Я новичок в сценарии оболочки. Я видел сообщение, чтобы преобразовать запятую в канал, используя следующий код ...

awk '{for(i=1; i<=NF; i+=2) gsub(",","|",$i)}1' FS=\" OFS= file

как изменить эту команду для файла Excel в канал?


Это файл Excel с расширением xls или xlsx? Или простой текстовый файл CSV?
Муру

да, это файл Excel с расширением .xlsx
user3844609

Тогда вы не можете использовать awk напрямую. Сначала вам нужно получить CSV-файл, используя, например, команду в unix.stackexchange.com/q/259361/70524
Muru

1
Protip: это .xslxпросто почтовый индекс, содержащий XML. Разархивируйте, запустите awk поверх всех XML-файлов, архив должен работать. По крайней мере, это то, что я делаюpython
Панки

Excel должен иметь возможность экспортировать файл с любым разделителем, который вы хотите использовать.
Кусалананда

Ответы:


1

Я знаю, что это обман, но если у вас есть gnumeric + ssconvert (мой любимый Linux excel ), вы можете

 ssconvert -O 'separator=| format=raw quoting-mode=never' in.xlsx out.txt

Смотрите также unoconv и pandoc

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.