Vorrei unire una variabile da un file all'altro in Linux.
La prima variabile contiene il nome su cui voglio unire i file.
Ho ordinato entrambi i file usando sia -f che -k:sort -f -k 1,1 SCZ.N.tmp> SCZ.N.tmp.sorted
e sort -f -k 1,1 1kg.tmp > 1kG.ref_file.sorted
Tuttavia, quando unisco entrambi i file con questo comando:join -1 1 -2 1 SCZ.N.tmp.sorted 1kG.ref_file.sorted> SCZ.freq.joined
Continuo a ricevere l'errore "join:SCZ.N.tmp.sorted:112855:not sorted:chr1_100002155_D D I6 0.995112 0.0184 0.7897 87016 Tuttavia, l'unione continua e la maggioranza viene fusa. Tuttavia, non sono sicuro se sto perdendo una piccola parte dei casi a causa della mancata corrispondenza tra i file o perché qualcosa va storto con l'ordinamento di questi file.
Qualcuno sa cosa sto sbagliando? E cosa posso fare per non ricevere questo errore?
Grazie!
Ho anche provato:LANG=en_EN sort -f -k 1,1 SCZ.N.tmp> SCZ.N.tmp.sorted2
e LANG=en_EN sort -f -k 1,1 1kg.tmp > 1kg.tmp.sorted2
, per poi unirti usando:LANG=en_EN join -1 1 -2 1 SCZ.N.tmp.sorted2 1kg.tmp.sorted2> SCZ.freq.joined
. Ma questo non ha risolto.
Risposta accettata:
Stai ordinando i file con l'opzione -f, come chiavi indipendenti da maiuscole e minuscole.
Tuttavia, join prevede che le chiavi siano nella normale sequenza ordinata.
Dovresti aggiungere l'opzione -i alla riga di comando per unire, in modo che ignori le differenze tra maiuscole e minuscole.
In alternativa, ometti l'opzione -f da entrambi i tipi.
Modifica:ho trovato anche un'altra possibilità qui. I separatori di campo devono essere identici per l'ordinamento e l'unione. Sembra che le impostazioni predefinite per l'ordinamento e l'unione siano entrambi spazi bianchi, ma potrebbe essere il prossimo ostacolo.