説明する

説明する

たとえば、次のようなファイルがあります。

B01 112178282 A01 112178282
A05 44887670 A01 44887670
B01 114451441 A01 114451441
B10 8364597 A01 8364597
B01 123453906 A01 123453906
A05 9155966 A01 9155966
A05 86420950 A01 86420950
A10 75684694 A01 75684694
A04 71261964 A01 71261964
B01 1262441 A01 1262441
B01 471272 A01 471272
B01 17007 A01 17007
A04 115637044 A01 115637044
A07 9376758 A01 9376758

2つの別々の出力ファイルが欲しい

  1. いつnum val in col1 == num val in col3
  2. 2番目の出力ファイルは次のようにする必要があります。num val in col 1 != num val in col 3

たとえば、col1はB01、col3はA01です。ここで、2つの列の数字の部分は同じです01。これで、これらすべての条件をfile1にリストする必要があります。

col1 が A05、col3 が A01、2 列の数値部分が異なる07 != 01場合は、別のファイルにリストする必要があります2

ベストアンサー1

awk 'substr($1,2)==substr($3,2) { print $0 > "file1" } substr($1,2) != substr($3,2) { print $0 > "file2" }' masterfile

生データを含むマスターファイルを使用し、awkのsubstr関数を使用してフィールドの最初の文字を区切る最初と3番目のスペースを無視し、比較する数字だけを残します。次に、この数字に対して条件付きチェックを実行し、それに応じて特定のファイル(ファイル1とファイル2)に配置します。

おすすめ記事