GNU/Linux >> Linux の 問題 >  >> Linux

大きなファイルに対して大きなリストをgrepする

試す

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.)

grep -f を使用 このため:

grep -f the_ids.txt huge.csv > output_file

man grep から :

<ブロック引用>

-f ファイル、--file=ファイル

FILE からパターンを 1 行に 1 つずつ取得します。空のファイルにはパターンが含まれていないため、何にも一致しません。 (-f は POSIX で指定されています。)

サンプル入力を提供していただければ、grep を改善できるかもしれません もう少しコンディションを整えてください。

テスト

$ cat ids
11
23
55
$ cat huge.csv 
hello this is 11 but
nothing else here
and here 23
bye

$ grep -f ids huge.csv 
hello this is 11 but
and here 23

Linux
  1. バッシュ‘?

  2. Grepがファイルをバイナリと見なす理由は何ですか?

  3. Grep一致しないファイルの表示を抑制する方法は?

  1. ファイルからGrepパターンを読み取る?

  2. ファイル名のパターンとファイルの内容に基づいてファイル名を一覧表示しますか?

  3. 連続ストリームを「grep」する方法は?

  1. 大きなファイルの行数を数える

  2. nc を使用して大きなファイルを転送する

  3. すべての ALSA デバイスを一覧表示する