加入兩個已排序的文件會出現錯誤: join: <file>:112855: is not sorted:
我想在linux中將一個變數從一個文件合併到另一個文件。第一個變數包含我要合併文件的名稱。
我已經使用 -f 和 -k 對兩個文件進行了排序:
sort -f -k 1,1 SCZ.N.tmp> SCZ.N.tmp.sorted
和sort -f -k 1,1 1kg.tmp > 1kG.ref_file.sorted
但是,當我使用此命令加入兩個文件時:
join -1 1 -2 1 SCZ.N.tmp.sorted 1kG.ref_file.sorted> SCZ.freq.joined
我不斷收到錯誤 ’ join: SCZ.N.tmp.sorted:112855: is not sorted: chr1_100002155_D D I6 0.995112 0.0184 0.7897 87016 ’ 儘管如此,連接仍在繼續,大部分被合併。但是,我不確定我是否會因為文件之間的不匹配而失去一小部分案例,或者是因為對這些文件進行排序時出現問題。
有人知道我做錯了什麼嗎?我能做些什麼來避免這個錯誤?謝謝!
我也試過:
LANG=en_EN sort -f -k 1,1 SCZ.N.tmp> SCZ.N.tmp.sorted2
和LANG=en_EN sort -f -k 1,1 1kg.tmp > 1kg.tmp.sorted2
,然後加入使用:LANG=en_EN join -1 1 -2 1 SCZ.N.tmp.sorted2 1kg.tmp.sorted2> SCZ.freq.joined
。但這並沒有解決它。
您正在使用 -f 選項對文件進行排序,作為與大小寫無關的鍵。
但是,join 需要按正常排序順序排列的鍵。
您應該將 -i 選項添加到命令行以進行連接,以使其忽略大小寫差異。
或者,在這兩種類型中都省略 -f 選項。
編輯:還在這裡找到了另一種可能性。對於排序和連接,欄位分隔符需要相同。看起來 sort 和 join 的預設值都是空格,但它可能是下一個障礙。