unixシェルスクリプト - 2つのファイルを比較します。 file1には2つの列(emp id)とemp_salがあり、ファイル2には2つの列(emp_id)とemp_salがあります。

unixシェルスクリプト - 2つのファイルを比較します。 file1には2つの列(emp id)とemp_salがあり、ファイル2には2つの列(emp_id)とemp_salがあります。

emp_id各inが合計にfile1存在するかどうかを比較しfile2、次にinと合計がその項目と一致するかどうかをemp_id比較する必要があります。同様に、すべてを比較して、あるファイルでは一致する出力を返し、別のファイルでは一致しない出力を返す必要があります。emp_salfile1file2emp_idemp_idsfile1file2

ファイル1

Emp-id emp-sal
1234.     1200
1255.     1400
4567.      5800
8765.      2340

ファイル2

Emp-num. Emp-sal- amt
1234.   1200
1255.    1700
4567.   5800
8765.   2340

一致するレコード出力

Emp-id emp-sal emp- sal-amt
1234.    1200.     1200 
4567.     5800.    5800
8765.      2340.    2340

矛盾

Emp-id emp-sal emp-sal-amt
1255.    1400.     1700

ベストアンサー1

サポートケース:

join <(< File1 sed '1d; s/  */ /g' | sort -n -k1,1) \
     <(< File2 sed '1d; s/  */ /g' | sort -n -k1,1) | awk '$2==$3'

joinフィールドは単一文字(デフォルトは空白)で区切る必要があり、行はキーフィールド(デフォルトは最初のフィールド)でソートする必要があるため、入力をクリーンアップするためにいくつsedかを追加しました。'1d;ヘッダーはスキップされ、複数のs/ */ /g'スペースは省略されます。 A スペースに置き換えられました。

おすすめ記事