- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试做一些非常简单的事情; grep 从列表中,字符串的精确匹配,在目录中的文件上:
#try grep each line from the files
for i in $(cat /data/datafile); do
LOOK=$(echo $i);
fgrep -r $LOOK /data/filestosearch >>/data/output.txt
done
与 grep 匹配的文件有 2000 万行,目录有 ~600 个文件,总共有 ~4000 万行我知道这会很慢,但我们估计需要 7 年时间。即使我在我们的 HPC 上使用 300 个内核按文件拆分作业进行搜索,看起来也可能需要一周多的时间。
还有类似的问题:
虽然它们在不同的平台上,但我认为 if else 可能对我有帮助。或 fgrep 这可能更快(但似乎有点慢,因为我现在正在测试它)谁能看到更快的方法来做到这一点?提前谢谢你
最佳答案
听起来 grep
的 -f
标志在这里很合适:
-f FILE, --file=FILE
Obtain patterns from FILE, one per line. The empty file
contains zero patterns, and therefore matches nothing. (-f is
specified by POSIX.)
因此 grep
已经可以执行您的循环正在执行的操作,您可以将循环替换为:
grep -F -r -f /data/datafile /data/filestosearch >>/data/output.txt
现在我不确定 2000 万个模式的性能,但至少你没有以这种方式启动 2000 万个进程,所以它可能要快得多。
关于bash - 在大型数据集上使用 grep 或 fgrep 循环非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14143163/
我试图从包含一些字符串的行中清除我的日志文件。字符串在一个文件中,由随机 [键盘] 字符组成 [是的,也是 *、+ 等] 似乎 grep 对 * 进行了精确匹配: grep "abc*" logs :
我有两个文件:usednaslist 和 naslist使用RHEL5 usednaslist filera:/vol/EQIMS/build filera:/vol/iquad_dev/FAST_d
我正在尝试使用 grep 从 file2 中的 file1 中提取匹配的单词并定向到输出文件。 我有文件1 Acetoanaerobium sticklandii Acetobacter pasteu
我有下面的示例文件 d41d8cd98f00b204e9800998ecf8427e /home/abid/Testing/FileNamesTest/apersand $ file d41d8cd
我正在尝试做一些非常简单的事情; grep 从列表中,字符串的精确匹配,在目录中的文件上: #try grep each line from the files for i in $(cat /dat
我是 linux/aix 的新手。我正在使用 aix,但遇到以下问题: 如果我尝试一个 find . -type f -exec fgrep -l 'searchword *$' 不返回任何内容或卡住
fgrep -ircl --include=*.{sql} "[--]"* 似乎没用。请帮助... 感谢大家的回复。我正在尝试用“#”替换“--”,但遇到了困难。我创建了一个 new question
我在文件中有以下正则表达式。顺便说一句,我在 SunOS 上 例如:文件模式包含以下几行: Ora-[0-9] violated 我有一个文件“数据文件”,其中包含以下内容: 0:/scm/12345
我是一名优秀的程序员,十分优秀!