Une dois arquivos csv por colunas correspondentes, junte o comando

1

Eu tenho dois arquivos .csv que preciso corresponder com base na coluna 1.

As duas estruturas de arquivos são assim.

FILE1

gopAga1_00004004-RA,1122.825534,    -2.497919969,   0.411529843

gopAga1_00010932-RA,440.485381, 1.769511316,    0.312853434 

gopAga1_00007012-RA, 13.37565185,   -1.973108929,   0.380227982

etc...

FILE2

gopAga1_00004004-RA,    ENSACAP00000013845

gopAga1_00009937-RA,    ENSACAP00000000905

gopAga1_00010932-RA,    ENSACAP00000003279

gopAga1_00000875-RA,    ENSACAP00000000296

gopAga1_00010837-RA,    ENSACAP00000011919

gopAga1_00007012-RA,    ENSACAP00000012682

gopAga1_00017831-RA,    ENSACAP00000016147

gopAga1_00005588-RA,    ENSACAP00000011117

etc..

Este é o meu comando atual que estou executando usando join:

Este é formatado a partir do que eu também li nos seguintes tópicos here

join -1 1 -2 1 -t , -a 1 -e "NA" -o "2.2,1.1,1.2,1.3" <(sort -k 1 healthy_vs_unhealthy_de.csv) <(sort RBH.csv) > output.txt

No entanto, toda vez que executo esse prompt, ele apenas grava a primeira linha na saída.

Alguém sabe por que meu código está sendo executado assim e não está realmente mesclando os dois arquivos com base no ID do GOP?

    
por cdxun 26.06.2018 / 21:54

1 resposta

0

devemos especificar o delimitador como vírgula para sort

# join -1 1 -2 1 -t , -a 1 -e "NA" -o "2.2,1.1,1.2,1.3" <(sort -t',' -k 1 healthy_vs_unhealthy_de.csv) <(sort -t',' RBH.csv)
ENSACAP00000013845,gopAga1_00004004-RA,1122.825534,    -2.497919969
ENSACAP00000012682,gopAga1_00007012-RA, 13.37565185,   -1.973108929
ENSACAP00000003279,gopAga1_00010932-RA,440.485381, 1.769511316
    
por 26.06.2018 / 22:04

Tags