これは、最初の列に基づいて2つのファイルの差を設定しようとするawkスクリプトです。
BEGIN{
OFS=FS="\t"
file = ARGV[1]
while (getline < file)
Contained[$1] = $1
delete ARGV[1]
}
$1 not in Contained{
print $0
}
TestFileAは次のとおりです。
cat
dog
frog
TestFileBは次のとおりです。
ee
cat
dog
frog
ただし、次のコマンドを実行すると、次のようになります。
gawk -f Diff.awk TestFileA TestFileB
スクリプトに「in」が含まれているかのように出力を取得します。
cat
dog
frog
「notin」が私の意図に対して正しい構文であるかどうかはわかりませんが、「in」と書いたときとまったく同じように動作する理由については非常に興味があります。