Unix 在大文件上运行grep的更快方法

Unix 在大文件上运行grep的更快方法,unix,foreach,grep,tcsh,Unix,Foreach,Grep,Tcsh,我正在运行一个foreach grep(4M行),在两个4M+行的文件上运行。有没有更快的方法让我运行这个?我在tcsh上 foreach f ( `cat strings` ) set var1 = `fgrep "$f" 1.rpt | awkk 2` set var2 = `fgrep "$f" 1.rpt | awkk 3` set var3 = `fgrep "$f" 2.rpt | awkk 2` set var4 = `fgrep "$f" 2.rpt | awkk

我正在运行一个foreach grep(4M行),在两个4M+行的文件上运行。有没有更快的方法让我运行这个?我在tcsh上

foreach f ( `cat strings` )

set var1 = `fgrep "$f" 1.rpt | awkk 2` 

set var2 = `fgrep "$f" 1.rpt | awkk 3` 

set var3 = `fgrep "$f" 2.rpt | awkk 2` 

set var4 = `fgrep "$f" 2.rpt | awkk 3` 

echo "$f | $var1 | $var2 | $var3 | $var4" >> output.rpt &

end

使用临时文件,而不是做两次相同的grep!不要使用shell循环,只需使用单个awk命令,它的运行速度将提高几个数量级。看看原因。也不要用[t]csh()编写脚本。如果没有样本输入、预期输出以及不知道awkk的功能,我们无法提供更多的答案。如果需要帮助,请查看并重试。