sort flash_int_list.txt|join finish_comm - > t1
join: file 2 is not in sorted order
flahs_int_list.txtをソートしましたが、まだファイル2がソートされた順序ではないとマークされています。何が間違っていますか?
flash_int_list.txtは次のとおりです(最初の2行だけが表示され、約1000行あります)。
1 8cvGIKL7C-M 1 1 1 0 0 0 0 -28
9 27ugSKW4-QQ 1 3 3 0 0 0 0 -28
答え1
残念ながら、マニュアルページはこれがうまくsort <no options> | join <no options>
いかないことを示しています。
Important: FILE1 and FILE2 must be sorted on the join fields. E.g., use ` sort -k 1b,1 ' if `join' has no options, or use ` join -t '' ' if `sort' has no options.
したがって、次のことを試すことができます。
sort flash_int_list.txt | join -t '' finish_comm - > t1
または:
sort -k 1b,1 flash_int_list.txt | join finish_comm - > t1
答え2
オプションは、接続する各ファイルのフィールドを-1 FIELD
-2 FIELD
定義します。join
デフォルトの結合フィールドは最初にスペースで区切られます。
オプションは、ソートに使用するキーを-k
定義します。sort
キーが指定されていない場合は、行全体がキーとして使用されます。
したがって、どのファイルを結合し、両方のファイルがそれらのファイルにソートされていることを確認してください。
man join
man sort
詳細より。
答え3
あなたはしばしば参加するのを見るでしょうプロセスの交換
join finish_comm <(sort flash_int_list.txt) > t1