同じフィールドのソート値に基づいて2つのソートされたファイルをマージします。

同じフィールドのソート値に基づいて2つのソートされたファイルをマージします。

長さは必ずしも同じである必要はありませんが、同じデータフィールドと同じヘッダーを使用して、特定の列の順序に従って保持されるヘッダーの後に始まり、2つのソートされたファイルの行をマージしたいと思います。たとえば、ファイル1は次のようになります。

header 1
header 2
header 3

cat    4    aa
dog    5    ab
ostrich    10    cd
fish    13    cc

ファイル2は次のようになります。

header 1
header 2
header 3

lemur    3    dd
alligator    4    ca
lemming    16    ad

1) 同じヘッダーを保持したいのですが、2) 列 2 に基づいて次の行をソートしたいと思います。私が望む出力は次のとおりです。

header 1
header 2
header 3

lemur    3    dd
cat    4    aa
alligator     4    ca
dog    5    ab
ostrich    10    cd
fish    13    cc
lemming     16    ad

探していますが、awkまたはを使用してこの状況の解決策を見つけることはできませんjoin

ベストアンサー1

awkそしてjoin間違ったツールです。

sed '/^$/q' file1; sort -snmk2,2 <(sed '1,/^$/d' file1) <(sed '1,/^$/d' file2)

おすすめ記事