我有一个包含数百万行的文件(Apple的EPF) 我需要的是使用很少的搜索术语来过滤它,但同时我需要匹配的行数放在输出文件的最后一行。 我当然想到了两次运行 - 一次是过滤,另一次是重要的,但这看起来不是最佳解决方案,因为一个过滤器可能需要几分钟。
现在我正在测试这样的事情:
grep -f filtrowanie application_price_old > appprice_temp
perl -i -pe 's/#recordsWritten\:\d{7,8}/#recordsWritten:`grep -e '^\d' -c
appprice_temp`/ appprice_temp
答案 0 :(得分:1)
根据您在问题中提供的文字和代码,这可能是您正在寻找的内容:
awk '
NR==FNR { regexps[$0]; next }
{
for (regexp in regexps) {
if ($0 ~ regexp) {
print
cnt++
next
}
}
}
END {
print "#recordsWritten:" cnt+0
}
' filtrowanie application_price_old > appprice_temp
如果这不是您所需要的,那么请编辑您的问题以澄清您的要求,并提供简明,可测试的样本输入和预期输出。