
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
ただし、次のように2つのファイルを結合すると:join -1 1 -2 1 SCZ.N.tmp.sorted 1kG.ref_file.sorted> SCZ.freq.joined
「継続」エラーが発生します。接続: SCZ.N.tmp.sorted: 112855: 整列しない: 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
。しかし、それは問題を解決できませんでした。
答え1
-fオプションを使用すると、ファイルを大文字と小文字に依存しないキーでソートできます。
ただし、結合には通常のソート順のキーが必要です。
大文字と小文字の違いを無視するには、結合コマンドラインに-iオプションを追加する必要があります。
または、両方のタイプで-fオプションを省略します。
編集:別の可能性も発見しましたここ。ソートと結合のためのフィールド区切り文字は同じでなければなりません。ソートと接続のデフォルトは空白のように見えますが、これは次の障害になる可能性があります。