linux – 如何(内存限制)> grep -F -f file_A file_B >> output.txt
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 如何(内存限制)> grep -F -f file_A file_B >> output.txt,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含673字,纯文字阅读大概需要1分钟。
内容图文
![linux – 如何(内存限制)> grep -F -f file_A file_B >> output.txt](/upload/InfoBanner/zyjiaocheng/956/df6c2a9b1f6744c7a5571dc9128b3ed4.jpg)
file_A(~500MB,1.6M行)由所有等长搜索项组成,每行1个,未排序.
file_B由所有等长文本行组成,每行1个,未排序
我已经能够在任何大小的file_B上运行“grep -F -f file_A file_B>> output.txt”而没有问题的52GB ram的盒子.问题是我现在限制在4GB内存,因此file_A的大小现在太大了,无法在不耗尽可用内存的情况下运行.
如果没有手动将file_A切换成较小的bite,有没有简单的方法来编写这个grep文件的前1000行file_A,然后当它们自动grep为1001-2000行时,等等.直到我完成了所有的file_A?
解决方法:
循环遍历file_A的块,将它们作为stdin发送到同一个grep语句;将1000调整到可用内存:
nlines=$(wc -l < file_A)
chunk=1000
for((i=1; i < nlines; i += chunk))
do
sed -n $i,+$((chunk - 1))p file_A | grep -F -f - file_B
done > output
内容总结
以上是互联网集市为您收集整理的linux – 如何(内存限制)> grep -F -f file_A file_B >> output.txt全部内容,希望文章能够帮你解决linux – 如何(内存限制)> grep -F -f file_A file_B >> output.txt所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。