Saya ingin menggabungkan variabel dari satu file ke file lain di linux.
Variabel pertama berisi nama tempat saya ingin menggabungkan file.
Saya telah mengurutkan kedua file menggunakan -f dan -k:sort -f -k 1,1 SCZ.N.tmp> SCZ.N.tmp.sorted
dan sort -f -k 1,1 1kg.tmp > 1kG.ref_file.sorted
Namun, ketika saya menggabungkan kedua file dengan perintah ini:join -1 1 -2 1 SCZ.N.tmp.sorted 1kG.ref_file.sorted> SCZ.freq.joined
Saya terus mendapatkan kesalahan 'join:SCZ.N.tmp.sorted:112855:is not sorted:chr1_100002155_D D I6 0.995112 0.0184 0.7897 87016 ' Namun demikian, bergabung terus dan mayoritas digabung. Namun, saya tidak yakin apakah saya kehilangan sebagian kecil kasus karena ketidakcocokan antara file, atau karena ada yang salah dengan pengurutan file ini.
Apakah ada yang tahu apa yang saya lakukan salah? Dan apa yang bisa saya lakukan untuk tidak mendapatkan kesalahan ini?
Terima kasih!
Saya juga telah mencoba:LANG=en_EN sort -f -k 1,1 SCZ.N.tmp> SCZ.N.tmp.sorted2
dan LANG=en_EN sort -f -k 1,1 1kg.tmp > 1kg.tmp.sorted2
, lalu bergabung menggunakan:LANG=en_EN join -1 1 -2 1 SCZ.N.tmp.sorted2 1kg.tmp.sorted2> SCZ.freq.joined
. Tapi itu tidak menyelesaikannya.
Jawaban yang Diterima:
Anda menyortir file dengan opsi -f, sebagai kunci yang tidak tergantung huruf besar/kecil.
Namun, join mengharapkan kunci dalam urutan yang diurutkan secara normal.
Anda harus menambahkan opsi -i ke baris perintah untuk bergabung, untuk mengabaikan perbedaan huruf besar/kecil.
Atau, hilangkan opsi -f dari kedua jenis.
Sunting:juga menemukan kemungkinan lain di sini. Pemisah bidang harus identik untuk pengurutan dan penggabungan. Sepertinya default untuk mengurutkan dan menggabungkan keduanya adalah spasi putih, tetapi ini mungkin menjadi rintangan berikutnya.