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 é
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_file
e usar o espaço como separador de colunas:
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 é sed
e aqui estou usando seuoperador de substituição. O formato geral será s/pattern/replacement/
substituído pattern
por replacement
. O g
no 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".