Salvar arquivo como texto e planilha delimitados por tabulações

Salvar arquivo como texto e planilha delimitados por tabulações

Estou usando a seguinte linha de comando no Linux para salvar o conteúdo do meu arquivo de entrada (arquivo txt composto por colunas) como uma planilha:

less input_file > out_put.csv

meu arquivo de saída é insira a descrição da imagem aqui

O problema está na planilha de saída; todas as colunas do arquivo de entrada unidas em uma coluna do arquivo de saída (planilha CSV).

Como posso revisar meu código simples para torná-lo mais eficiente para salvar meu arquivo txt como um texto delimitado por tabulações e uma planilha.

Responder1

Em primeiro lugar, lessé apenas um pager, é uma ferramenta que permite ler arquivos. O que você está fazendo é exatamente o mesmo que copiar input_file para out_put.csv( cp input_file out_put.csv). Você não está alterando o conteúdo de forma alguma.

Então, para lê-lo como uma planilha usando, por exemplo libreoffice, você precisaria abrir seu aplicativo de planilha, depois abrir o seu input_filee usar o espaço como separador de colunas:

        Caixa de diálogo de importação de texto do libreoffice com espaços escolhidos como separador

Agora, se você realmente deseja converter seu arquivo paravírgulaformato de valores separados ( .csv), você precisará adicionar vírgulas. Este comando substituirá todos os espaços por vírgulas em cada uma de suas linhas e salvará a saída como output.csv:

sed 's/  */,/g' input_file > output.csv

O comando acima é sede aqui estou usando seuoperador de substituição. O formato geral será s/pattern/replacement/substituído patternpor replacement. O gno final faz com que ele substituatodosocorrências do padrão em cada linha, sem ele substituiria apenas a primeira. O padrão que dei foi (um espaço) seguido por 0 ou mais (isso é o que *significa) espaços ( *) e eu disse para substituir por ,. Basicamente, isso significa "substituir quaisquer ocorrências de um ou mais espaços por vírgula".

informação relacionada