GNU/Linux >> Linux の 問題 >  >> Linux

Linux – 2つのソートされたファイルを結合するとエラーが発生します:Join::112855:ソートされていません:?

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オプションを省略します。

編集:ここで別の可能性も見つけました。フィールドセパレータは、並べ替えと結合で同一である必要があります。並べ替えと結合のデフォルトはどちらも空白のようですが、次のハードルになる可能性があります。


Linux
  1. Linuxでテキストを含まないテキストファイルを見つける方法は?

  2. LinuxのNOTディレクトリのディレクトリ内のファイルのみを削除します

  3. 2 つの CSV ファイルを結合するには?

  1. LinuxMint12でFirewallDが実行されていないエラーを修正

  2. Linux の一時ディレクトリはどこにありますか?

  3. Linuxで2つの名前付きパイプを単一の入力ストリームに結合するにはどうすればよいですか

  1. LinuxでRustエラー「リ​​ンカー「cc」が見つかりません」を修正する方法

  2. Linuxの/tmpディレクトリを上司のように管理する

  3. Linuxで2つのテキストファイルを結合する方法