maneira mais fácil de reorganizar colunas e manipular arquivos de texto

2

Aprendendo linux na escola e trabalhando na manipulação de arquivos de texto no momento. Olhando para aprender alguns atalhos aqui e ali ao longo do caminho. Atualmente eu tenho um arquivo de texto com conteúdo como:

First    Last   111 E. Road    New York    NY
First2   Last2  222 w. Road    Newark      NJ

Devemos escrever um script para reorganizar as colunas e delimitar vírgulas em vez de delimitar por tabulações. O que eu fiz foi simplesmente cortar cada campo e colocar em seu próprio tmpfile e, em seguida, colá-los como tal:

paste tmplast tmpfirst tmpstate tmpaddress | tr '\t' ',' > finished

Existe uma maneira mais rápida do que cortar tudo em um arquivo tmp e colá-lo? Sou muito novo no Linux e os únicos comandos que aprendi para manipular arquivos são tr e sed .

    
por Jon Butler 13.02.2017 / 05:46

1 resposta

2

Você pode fazer isso em awk da seguinte forma:

awk 'BEGIN {FS="\t"; OFS=","} {print $2, $1, $5, $3, $4}' file

FS e OFS especificam o "(separador de campo de entrada)" e "separador de campo de saída" e, em seguida, a ordem na qual imprimir campos pode ser especificada explicitamente usando a notação $ . (Nenhum arquivo temporário necessário.)

Saída:

Last,First,NY,111 E. Road,New York
Last2,First2,NJ,222 w. Road,Newark
    
por 14.02.2017 / 03:42