列を一致させて2つのCSVファイルを結合し、結合コマンド

列を一致させて2つのCSVファイルを結合し、結合コマンド

列1に基づいて一致させる必要がある2つの.csvファイルがあります。

2つのファイル構造は次のとおりです。

ファイル1

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...

ファイル2

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..

これは現在Joinを使って実行するコマンドです。

これは私が次のスレッドで読んだ内容の形式です。ここ

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

ただし、このプロンプトを実行するたびに、出力の最初の行だけが記録されます。

私のコードがこのように動作し、実際にGOP IDに基づいて2つのファイルをマージしない理由を知っている人はいますか?

ベストアンサー1

区切り文字をカンマで指定する必要があります。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

おすすめ記事