Bash: anexar colunas à tabela

2

Se você quiser acrescentar uma coluna (não uma linha) a uma tabela e a coluna tiver o mesmo número de elementos, com certeza, como você pode fazer isso?

Dado um conjunto de arquivos, que continua mudando a cada dia, você deseja acompanhá-lo.

Um exemplo seria:

file1 3443 words 11-20-13 44 4788 words 11-23-13 
file2 4457 words ...
    
por Quora Feans 23.11.2013 / 04:13

2 respostas

6

Você quer o utilitário paste :

paste history today > new_history

Por padrão, paste separa as linhas com tab . Você pode mudar isso com a opção -d .

paste só funciona como esperado se os arquivos a serem combinados tiverem o mesmo número de linhas, na mesma ordem e sem as chaves que talvez precisem ser excluídas de um dos arquivos. Para um utilitário um pouco mais sofisticado, consulte join

    
por 23.11.2013 / 05:47
1

A maneira mais fácil de pensar nisso é percorrer a saída do dia anterior e imprimir essa linha + o novo conteúdo que você deseja no final de cada uma dessas linhas.

$ while read i; do printf "%s %s\n" "$i" "..new stuff.."; done < prior.txt

Exemplo

Digamos que eu coloque suas linhas em um arquivo e chame de prior.txt .

file1 3443 words 11-20-13 44 4788 words 11-23-13
file2 4457 words ...

Se eu executar o comando acima, receberei a seguinte saída:

$ while read i; do printf "%s %s\n" "$i" "..new stuff.."; done < prior.txt
file1 3443 words 11-20-13 44 4788 words 11-23-13 ..new stuff..
file2 4457 words ... ..new stuff..

Detalhes

O texto acima usa um loop while para passar por cada linha de prior.txt . Em seguida, uso printf para imprimir essa linha, que está contida na variável $i , seguida pela string ..new stuff.. .

Você pode trocar seu próprio conteúdo em ..new stuff.. ou aumentar o acima conforme necessário para atender às suas necessidades.

    
por 23.11.2013 / 04:29