GNU/Linux >> Znalost Linux >  >> Linux

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

Můžete toho dosáhnout pomocí sort a uniq nástroje.

příklad:

[[email protected] ~]$ echo -e "test\ntest\ntest\nanother test\ntest"
test
test
test
another test
test
[[email protected] ~]$ echo -e "test\ntest\ntest\nanother test\ntest" | sort | uniq
another test
test

v závislosti na datech můžete chtít použít také některé přepínače.


Můžete použít:

grep -rohP "(mySearchString)" . | sort -u

-r:rekurzivní

-o:tiskne pouze odpovídající část textu

-h:netisknout názvy souborů

-P:Regulární výraz ve stylu Perl (v závislosti na případu můžete místo něj použít -E)

sort -u je lepší než sort | uniq , jak zdůraznil @Chris Johnsen.


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

  2. Jak mohu vyloučit adresář z příkazu ls

  3. Jak mohu zacyklit výstup příkazu shellu?

  1. Jak seřadit výsledky z příkazu ls podle data úpravy (nejdříve adresáře)?

  2. Jak seřadit výsledky příkazu Najít podle data?

  3. Jak seřadit tento výstup 1,10,11..2

  1. Jak seřadit výstup Du podle velikosti?

  2. grep výstup z dlouhého na široký

  3. Jak aplikovat filtr na výstup `tail -f` v reálném čase?