次のようにフォーマットされた 2 つの非常に大きなファイル (それぞれ 900 MB 以上) があります。
email@address.tld:some_string:full name:location:contract_number
file_A (chk.forward.AUDIT.DATA.SET) のフィールド 1 と 2 の両方を、file_b (AUDIT.DATA.SET) の 1 行でフィールド 1 と 2 と照合するパターンとして使用する必要があります。私は、sed、awk、grep、cut、または実行を高速化するものを使用することにオープンです。
以下は私の書き方の悪いコマンドです。ここに、モンスター サイズの結果ファイル (元のファイルよりも大きい) を作成するエラーがあります。これを行うにはもっと良い方法があると確信しています。
while read line; do grep $(echo $line | cut -d: -f2) AUDIT.DATA.SET
>/dev/null && echo "AUDIT PASS ACCOUNT:$(echo $line | cut -d: -f1) FORWARD:$(echo $line | cut -d: -f2) MATCH OVD RECORD $(grep $(echo $line |cut -d: -f2) AUDIT.DATA.SET)" & || echo "AUDIT FAIL ACCOUNT:$(echo $line | cut -d: -f1) FORWARD:$(echo $line | cut -d:
-f2) NO MATCH $(grep $(echo $line |cut -d: -f2) AUDIT.DATA.SET)" ; done < chk.forward.AUDIT.DATA.SET >> restuls.txt