入力ファイルの列3にある他のファイルの数を含む行を除外する出力ファイルを作成したいと思います。
列3に数字を含む行を含めるには、Guruの助けを借りて次のスクリプトを使用しました。
awk 'NR==FNR{a[$1];next}($3 in a)' extract.file input.file > output file
しかし、今は数字のある行を出力ファイルにコピーしたくありません。
例:extract.fileがあります。
123
689
456
とinput.file
1 AB 123 home 123
1 AC 568 cat 123
1 BC 689 dog 565
1 BB 456 car 456
以下のみを含む結果ファイルが必要です。
1 AC 568 cat 123
スクリプトを変更する方法を知っている人、またはこの問題を解決できる他のスクリプトがある人はいますか?
答え1
否定的な条件:
awk 'NR==FNR{a[$1];next}!($3 in a)' extract.file input.file
答え2
( x in array )は値を返すので、「配列にはありません」を実行するには、次のようにします。
awk 'NR==FNR{a[$1];next}($3 in a ==0)' extract.file input.file
これも動作します。