来自文件中多个字符串的许多文件中的grep更快

时间:2013-09-26 17:57:11

标签: performance bash shell grep text-files

我有以下工作脚本,可以在以前保存到文件中的某些特定字符串的许多文件的目录中进行grep。

我使用文件扩展名来grep所有文件,因为它的名字是随机的,请注意我应该在所有文件中搜索我之前文件中的每个字符串。

另外,我剪切输出grep,因为它返回匹配文件的2或3行,我只想要一个显示文件名的特定部分。

我可能会使用多余的东西,它可能会更快?

#!/bin/bash
#working but slow
cd /var/FILES_DIRECTORY
while read line
do
LC_ALL=C fgrep "$line" *.cps | cut -c1-27 >> /var/tmp/test_OUT.txt
done < "/var/tmp/test_STRINGS.txt"

2 个答案:

答案 0 :(得分:3)

grep -F -f /var/tmp/test_STRINGS.txt *.cps | cut -c1-27

不是你在寻找什么?

答案 1 :(得分:0)

这会加速你的脚本:

#!/bin/bash
#working  fast 

cd /var/FILES_DIRECTORY
export LC_ALL=C

 grep -f /var/tmp/test_STRINGS.txt *.cps | cut -c1-27 > /var/tmp/test_OUT.txt