Como enviar alguns dados para diferentes células de um arquivo do Excel?

0

Exemplo:

Eu tenho um arquivo com os seguintes dados:

cvrta2100 Error 404 Fixed

cvrta2111 Licensed  Needs Fixing

cvrta2123 Error 404 Fixed

cvrta2333 Licensed  Needs Fixing

Estou usando awk para imprimir essa saída em um arquivo do Excel:

awk 'BEGIN{ OFS="|"; print "Hosts|Output|Status"}; NR > 1{print $1, $2, $3, $4, $5, $6, $7, $8, $9;}' input.txt > Output.xls

O problema é que só consigo obter os resultados em uma única célula, ou seja, " cvrta2333 Licensed Needs Fixing " é impresso em uma única célula.

Minha pergunta: É possível imprimir cada palavra Hosts, Output e Status em uma célula diferente, por exemplo, cvrta2333 (uma célula) Licensed (próxima célula) Needs Fixing (próxima célula)

    
por Koshur 15.03.2016 / 14:33

2 respostas

3

Para colunas "simples" como essa, os valores separados por vírgula abrirão bem no Excel.

awk 'BEGIN{ OFS=","; print "Hosts,Output,Status"}; NR > 1{print $1, $2, $3, $4, $5, $6, $7, $8, $9;}' input.txt > Output.csv
    
por 15.03.2016 / 14:54
0

Se você importar o arquivo no Excel nativamente, poderá usar a função "texto para tabela" (ou o que for chamado) para dividir as linhas em colunas usando um delimitador de espaço.

Não sei como o Excel reagirá, mas você pode converter o arquivo em um com palavras delimitadas por tabulações ou vírgulas usando tr ,

$ tr \   \t  < input > output
$ tr \   ,    < input > output

Eu ficaria longe do CSV, a menos que fosse o único que deixasse o Excel feliz, por causa da necessidade de citar as vírgulas que fazem parte do texto do arquivo de log.

    
por 15.03.2016 / 23:03