GNU/Linux >> Znalost Linux >  >> Linux

grep velký seznam proti velkému souboru

Zkuste

grep -f the_ids.txt huge.csv

Navíc, protože vaše vzory vypadají jako pevné řetězce, dodáváme -F možnost může urychlit 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.)

Použijte grep -f pro toto:

grep -f the_ids.txt huge.csv > output_file

Od man grep :

-f SOUBOR, --soubor=SOUBOR

Získejte vzory ze FILE, jeden na řádek. Prázdný soubor obsahuje zeropatterns, a proto nic neodpovídá. (-f je určeno POSIXem.)

Pokud nám poskytnete nějaký ukázkový vstup, možná můžeme dokonce zlepšit grep stav trochu víc.

Test

$ 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. Čtení Grepových vzorů ze souboru?

  2. Vypsat názvy souborů na základě vzoru názvu souboru a obsahu souboru?

  3. Počítejte řádky ve velkých souborech

  1. grep bez zobrazení cesty/souboru:řádku

  2. Jak grep \nv souboru

  3. Přesměrovat strace do souboru

  1. Výpis všech e-mailových adres v souboru s grep

  2. The Bash ‘?

  3. grep dvojice vzorů a souboru