Программа для просмотра командной строки CSV - PullRequest
1 голос
/ 26 мая 2011

Мои вопросы такие же, как Командная строка CSV viewer? и ответ на команду column -s, -t почти идеален - за исключением того, что он не обрабатывает пустые поля CSV, как я ожидал например, данный вход

col1,,col3
,col2,

производит:

col1  col3
col2

но я бы хотел:

col1      col3
     col2

Есть ли вариант для достижения вышеизложенного с помощью команды столбца или альтернативный способ достижения этого? (среда Cygwin)

Ответы [ 4 ]

2 голосов
/ 18 февраля 2013

-n опция существует в Debian.например:

>$ echo -e "col1,,col3\n,col2," | column -n -s, -t
col1        col3
      col2  
2 голосов
/ 26 мая 2011

Это самая далекая вещь из элегантного, и, возможно, это то, о чем вы уже подумали и ищете лучшее решение, но я работаю над этим раздражением, выполняя серию замен sed, чтобы поместить пробел в пустые поля.У меня они есть в качестве функций в моем bashrc ...

csvcolumn() { sed -e "s/^$2/ $2/" -e "s/$2$/$2 /" -e "s/$2$2/$2 $2/g"  -e "s/$2$2/$2 $2/g" $1 | column -t -s$2 ; }
csvcomma() { sed -e 's/^,/ ,/' -e 's/,$/, /' -e 's/,,/, ,/g'  -e 's/,,/, ,/g' $1 | column -t -s, ; }

Первый из них использует два аргумента, чтобы иметь возможность указать символ разделителя.Второй - это то же самое, но он принимает только один аргумент и предполагает, что разделитель - это запятая, так как это чаще всего то, что я использую в любом случае.

csvcolumn input.csv ,

или

csvcomma input.csv
1 голос
/ 26 мая 2011

Используйте кошку и седь.

cat filename | sed 's/[~\],/\t/g'
0 голосов
/ 07 июня 2011

Если вы vimmer, используйте плагин CSV , который на июль красивый .

...