【发布时间】:2013-06-01 07:15:33
【问题描述】:
我有 2 个非常大的文件(每个超过 900 兆),格式为
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 和 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
【问题讨论】:
-
您的预期输出是什么?您提到了 2 个文件,但只提供了一个文件的格式。
-
它们是格式。谢谢你问