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 notsorted: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は、通常のソートされた順序でキーを想定しています。
大文字と小文字の違いを無視するために、joinのコマンドラインに-iオプションを追加する必要があります。
または、両方の並べ替えから-fオプションを省略します。
編集:ここで別の可能性も見つけました。フィールドセパレータは、並べ替えと結合で同一である必要があります。並べ替えと結合のデフォルトはどちらも空白のようですが、次のハードルになる可能性があります。