2つのファイルがあります。
ファイル1:
Dave 734.838.9800
Bob 313.123.4567
Carol 248.344.5576
Mary 313.449.1390
Ted 248.496.2204
Alice 616.556.4458
ファイル2:
Bob Tuesday
Carol Monday
Ted Sunday
Alice Wednesday
Dave Thursday
Mary Saturday
これら2つをfile3にマージしたいと思います。
file3 は次のようになります。
Name On-Call Phone
Carol MONDAY 248.344.5576
Bob TUESDAY 313.123.4567
Alice WEDNESDAY 616.556.4458
Dave THURSDAY 734.838.9800
Nobody FRIDAY 634.296.3356
Mary SATURDAY 313.449.1390
Ted SUNDAY 248.496.2204
それでは、シェルスクリプトでこれをどのように実行できますか?
答え1
このjoin
ユーティリティはまさにこの種の問題のために設計されています。つまり、これらのフィールドの1つ(デフォルトでは最初のフィールド)に基づいて2つのファイルを結合します。ファイルを最初にソートする必要があります。
join <(sort file2) <(sort file1) | column -t
生産する
Alice Wednesday 616.556.4458
Bob Tuesday 313.123.4567
Carol Monday 248.344.5576
Dave Thursday 734.838.9800
Mary Saturday 313.449.1390
Ted Sunday 248.496.2204
これは平日ではなく名前でソートされます。必要に応じて平日でソートするには後処理が必要です。