Como alterar as colunas do separador de vírgulas em espaços de largura fixa?

0

Reformate os dados inseridos no sql:

('1', 'admin', '^/admin/$', null,'Admin Console', 0,'admin.dashboard.Admin', null),
('1-2',  'admin', '^/admin/aggregates/$', 1,'Host Aggregates', 0,'admin.aggregates.panel.Aggregates', null),
('1-2-1',  'admin', null, '1-2','Host Aggregates', 1,null, null),

para isso:

('1',     'admin', '^/admin/$',            null,  'Admin Console',   0, 'admin.dashboard.Admin',             null),
('1-2',   'admin', '^/admin/aggregates/$', 1,     'Host Aggregates', 0, 'admin.aggregates.panel.Aggregates', null),
('1-2-1', 'admin', null,                   '1-2', 'Host Aggregates', 1, null,                                null),
    
por Liao Zhuodi 01.11.2016 / 08:03

2 respostas

0

Existe um caractere ASCII que nunca aparecerá em seus dados? Talvez @ , % ou ~ ? Em caso afirmativo, use esse caractere da seguinte maneira:

sed 's/, */,@/g' your_file | column -s'@' -t

O comando sed separa suas colunas por @ caracteres, removendo espaços entre colunas (mas deixando as vírgulas), assim:

('1',@'admin',@'^/admin/$',@null,@'Admin Console',@0,@'admin.dashboard.Admin',@null),@
('1-2',@'admin',@'^/admin/aggregates/$',@1,@'Host Aggregates',@0,@'admin.aggregates.panel.Aggregates',@null),@
('1-2-1',@'admin',@null,@'1-2',@'Host Aggregates',@1,@null,@null),@

O comando column separa as colunas, usando @ como o separador de coluna ( -s'@' ), e formata os dados como uma tabela ( -t ).

    
por 01.11.2016 / 09:04
0

Aqui está uma abordagem alternativa que apenas lê o csv e formata-o como uma tabela. Ele usa o powershell:

PS > import-csv myinput.csv | tabela de formato

Isso não altera o arquivo CSV em si. Apenas te dá uma cópia legível. Se você quiser colocar a cópia legível em outro arquivo, faça o seguinte:

PS > import-csv myinput.csv | tabela de formato > mycopy.txt

Observação: o prompt real não é PS & gt ;. Eu apenas escrevi dessa maneira para economizar espaço.

    
por 04.11.2016 / 12:54

Tags