O comando paste

A situação:
Existem dois arquivos, A e B, com 2 colunas cada e um número qualquer de linhas.
O problema:
Criar um aquivo C de forma que a 1a coluna do arquivo C seja a 1a coluna do arquivo A e a 2a coluna do arquivo C seja a 1a coluna do arquivo B.
A solução:
Parte 1 - Juntando os arquivos:
paste A B > TEMP
este comando faz com que o arquivo B seja colado ‘ao lado’ do arquivo A em um arquivo TEMP (o paste é semelhante ao cat, porém usando o cat o arquivo B seria colado ‘abaixo’ do arquivo A).
Parte 2 - Separando as colunas:
awk '{print $1 " " $3}' TEMP > C
isso faz com que as colunas 1 e 3 do arquivo TEMP sejam coladas no arquivo C, resolvendo o problema.
Aposto que existe uma forma mais prática de fazer isso (e certamente n+1 formas mais complexas e com mais gambiarras também), de qualquer maneira está aí a dica.
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
Entries
June 12th, 2007 at 12:33 am
one line:

paste A B | awk ‘{print $1 ” ” $3}’ > C
boa dica
June 12th, 2007 at 3:02 pm
‘paste’ concatena linha por linha (quando encontra newline), enquanto ‘cat’ concatena de arquivo em arquivo (quando encontra EOF)
June 12th, 2007 at 7:32 pm
freakcode: thanks, vou melhorar o post.
caixeiro viajante: boa! eu resolvi separar para explicar melhor, mas sem duvida o pipe ajuda bastante