2つのファイルを比較し、trueまたはfalseの値を返します。

2つのファイルを比較し、trueまたはfalseの値を返します。

2つのファイルがあり、1つは列があります。
両方のファイルの最初の行が等しい場合は1を印刷し、そうでない場合は0を印刷します。

file1:

M
A
A
M

file2:

M
M
A
A

output:

1
0
1
0

誰でもこれを行うことができるawkスクリプトを表示できますか?

ベストアンサー1

この試み:

$ awk '!NF{next} FNR==NR{a[FNR]=$1;next};{print $1==a[FNR]  ? 1 : 0}' file1 file2
1
0
1
0

説明する

  • !NF{next}: 空行は必要ありません。スキップしてください。
  • FNR==NR{a[FNR]=$1;next}: 処理中、file1最初のフィールドを連想配列に格納し、インデックスは行番号です。
  • {print $1==a[FNR] ? 1 : 0}:処理中に、最初のフィールド値が連想配列に格納されている対応する値file2と同じであることを確認してください。そうであれば1を印刷し、そうでなければ0を印刷します。file1a

おすすめ記事