列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