adiciona coluna e salva o arquivo

0

Como posso adicionar coluna e substituir a tabela .csv

Comando:

$ paste -d ' ' 1.csv <(cut -d ' ' -f1 status.csv)

$ cat 1.csv
1  2
2  5

$ cat status.csv
true
false

Se eu usar > 1.csv - excluí todas as colunas no arquivo 1.csv e salve apenas a primeira coluna do status do arquivo.csv Desejo adicionar a primeira coluna do arquivo status.csv ao arquivo 1.csv e salvar o arquivo 1.csv com a nova coluna do arquivo status.csv?

    
por Oleksii 16.10.2016 / 19:30

2 respostas

1

Provavelmente, o mais próximo que você vai conseguir é usar o utilitário sponge do pacote moreutils

DESCRIPTION
       sponge reads standard input and writes it out to the specified file.
       Unlike a shell redirect, sponge soaks up all its input before writing
       the output file. This allows constructing pipelines that read from and
       write to the same file.

Então

paste -d ' ' 1.csv status.csv | sponge 1.csv

Se você está perguntando isso como uma continuação da sua pergunta anterior comparação das duas tabelas linha a linha , então você poderia eliminar o arquivo status.csv intermediário, por exemplo, fazendo

paste 1.csv 2.csv | awk '{print $1, $2, $2 == $4 ? "true" : "false"}' | sponge 1.csv
    
por steeldriver 17.10.2016 / 02:40
0

Você pode usar classificação , com a bandeira unique
Assim:

paste -d ' ' 1.csv <(cut -d ' ' -f1 status.csv) | sort -uo 1.csv
-u, --unique
    with -c, check for strict ordering; without -c, output only  the
    first of an equal run

-o, --output=FILE
    write result to FILE instead of standard output
    
por Benny 16.10.2016 / 20:10