GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu omezit počet výsledků vrácených z grep?

Další možností je právě použití head:

grep ...parameters... yourfile | head

To nebude vyžadovat prohledávání celého souboru – zastaví se, když bude nalezeno prvních deset odpovídajících řádků. Další výhodou tohoto přístupu je, že nevrátí více než 10 řádků, i když používáte grep s volbou -o.

Například pokud soubor obsahuje následující řádky:

112233
223344
123123

Pak je rozdíl ve výstupu:

$ grep -o '1.' yourfile | head -n2
11
12

$ grep -m2 -o '1.'
11
12
12

Pomocí head vrátí pouze 2 výsledky podle potřeby, zatímco -m2 vrátí 3.


-m možnost je pravděpodobně to, co hledáte:

grep -m 10 PATTERN [FILE]

Od man grep :

-m NUM, --max-count=NUM
        Stop reading a file after NUM matching lines.  If the  input  is
        standard  input  from a regular file, and NUM matching lines are
        output, grep ensures that the standard input  is  positioned  to
        just  after the last matching line before exiting, regardless of
        the presence of trailing context lines.  This enables a  calling
        process  to resume a search.

Poznámka:grep přestane číst soubor, jakmile bude nalezen zadaný počet shod!


Linux
  1. Jak spočítat počet řádků v souboru po zápase Grep?

  2. Jak přenést výsledky 'najít' do mv v Linuxu

  3. Jak převést výstup z grep do cp?

  1. Jak mohu získat poslední číslo z řetězce v bash?

  2. Jak mohu odfiltrovat jedinečné výsledky z výstupu grep?

  3. Linux - grep od určitých řádků až do konce souboru

  1. Jak používat Linuxový příkaz grep

  2. Jak zjistit počet vertikálních linek dostupných v terminálu?

  3. Jak chmodovat soubory na základě výsledků z příkazu find