これら2つのファイルを一致する値にマージするには、awkコマンドが必要です。
Color:Green
Color:Yellow
Color:Orange
そして
Green:Yes
Orange:Yes
そして得る
Color:Green:Yes
Color:Orange:Yes
ベストアンサー1
使用と場所join
:sort
bash
$ join -t: -1 2 <( sort -t: -k2 colours.txt ) <( sort selected.txt )
Green:Color:Yes
Orange:Color:Yes
フィールドを正しくソートするには:
$ join -t: -1 2 -o1.1,1.2,2.2 <( sort -t: -k2 colours.txt ) <( sort selected.txt )
Color:Green:Yes
Color:Orange:Yes
join
ソートされた入力データに対してリレーショナルJOIN操作を実行します。この場合、結合フィールドは色であり、これは最初の:
ファイルでは2番目の区切りフィールド、2番目のファイル:
では最初の区切りフィールドとして表されます。
join -t: -1 2
makeを介して、join
最初のファイルの2番目のフィールドを「結合キー」フィールドとして選択し(最初のフィールドはデフォルトフィールドです)、これらの2つのフィールド<(...)
(から置換bash
)でソートされたデータを提供します。最初のものは、sort
2番目に区切られたフィールド(色):
で最初のファイルをソートするという点で「特別」です。
上記の2番目の例では、この-o
フラグを使用して出力で表示したい内容と順序を明示的に指定します。