копирование из файла psv в файл excel для нескольких столбцов

копирование из файла psv в файл excel для нескольких столбцов

Мой PSV-файл выглядит так

Column1|Column2|Column3
Web_Value_in_file|123|OLA
Tab_Value_out_file|453|OLA

Исходные и целевые столбцы отличаются. Я хочу обрезать значение из столбца1 до нескольких столбцов в цели с помощью разделителя _. Я хочу, чтобы выходной файл был как в Excel (.xlsx)

Column1 Column2 Column3
Web     In      123
Tab     Out     453

решение1

Я думаю, это то, что вы ищете:

column -s '|' -t file

Предполагая, что ни в одном из полей нет встроенных символов вертикальной черты. Для анализа общих данных CSV используйтеcsvkit.

решение2

С достаточно последней версиейМиллер

$ ~/src/miller/c/mlr --csvlite --ifs '|' --ofs tab put '
    x = splitnv($Column1,"_"); $Column3 = $Column2; $Column2 = capitalize(x[3]); $Column1 = x[1]
  ' then cat file.psv
Column1 Column2 Column3
Web     In      123
Tab     Out     453

В более старых версиях Miller вы, возможно, не сможете использовать эту capitalizeфункцию — вы можете либо смириться с использованием строчных букв in/ out, либо преобразовать все в заглавные IN/, OUTзаменив capitalizeна toupper.

Связанный контент