加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 对一个大文件grep一个大的列表

发布时间:2020-12-13 19:30:41 所属栏目:Linux 来源:网络整理
导读:我目前正在尝试使用更大的csv文件(3.000.000行)来填写大量的ids(?5000). 我想要所有的csv行,包含id文件中的一个id. 我天真的做法是: cat the_ids.txt | while read linedo cat huge.csv | grep $line output_filedone 但这永远是永远! 这个问题有更有效的
我目前正在尝试使用更大的csv文件(3.000.000行)来填写大量的ids(?5000).

我想要所有的csv行,包含id文件中的一个id.

我天真的做法是:

cat the_ids.txt | while read line
do
  cat huge.csv | grep $line >> output_file
done

但这永远是永远!

这个问题有更有效的方法吗?

解决方法

尝试
grep -f the_ids.txt huge.csv

此外,由于您的模式似乎是固定的字符串,提供-F选项可能会加快grep.

-F,--fixed-strings
          Interpret PATTERN as a  list  of  fixed  strings,separated  by
          newlines,any  of  which is to be matched.  (-F is specified by
          POSIX.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读