GNU/Linux >> Linux Esercitazione >  >> Linux

Linux – L'unione di due file ordinati dà errore:Join::112855:Non è ordinato:?

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.


Linux
  1. Come correggere un errore di comando non trovato in Linux

  2. Gestisci la directory Linux /tmp come un capo

  3. Come unire due file di testo in Linux

  4. Come trovare file di testo che non contengono testo su Linux?

  5. Dov'è la directory temporanea in Linux?

Come confrontare due file nel terminale Linux

Come sincronizzare automaticamente i file tra due server Linux

Risoluzione dei problemi di errore "Bash:comando non trovato" in Linux

Utilizzo del comando Diff per confrontare due file nel terminale Linux

Confronto di due file nel terminale Linux

Differenza negli spazi bianchi tra due file su Linux