2 つのファイルがあり、3 番目のファイルを作成しようとしています。fileA には、数値の静的リストがあります。fileB には、数値の静的リストもあります。awk を使用して、fileB から数値を取得し、fileA を解析して、fileC を作成したいと考えています。FileC は、fileB から見たものを無視して fileA になります。
その他のファイル*
fileA
99882105030=10.10.2.3=
99882152121=10.10.2.3=
99882152122=10.10.2.3=
99882152123=10.10.2.3=
99882152124=10.10.2.3=
99882278940=10.10.2.3=
99882278969=10.10.2.3=
99883340691=10.10.2.3=
99883349708=10.10.2.3=
99883349755=10.10.2.3=
fileB (numbers that should be ignored)
99882105030
99882152121
99882152122
99882152123
fileC (file created from output of fileA and fileB)
99882278940=10.10.2.3=
99882278969=10.10.2.3=
99883340691=10.10.2.3=
99883349708=10.10.2.3=
99883349755=10.10.2.3=
これまでのところ、私は試しました:
awk 'FNR==NR { a[$NF]; next } ($NF in a)' fileB fileA > fileC
運がない。grep -v -E "99882105030|99882152121" ... 心ゆくまで実行できることはわかっていますが、このファイルはかなり大きくなる可能性があり、for ループを実行したくありません。テイカーはいますか?
perl -p -e 's:\n:\|:g' fileB |\
sed 's:^:grep -v -E ":g;s:|$:":g;s:$: fileA > fileC:g | sh
とても醜いです