92 votes

Comment puis-je filtrer les résultats uniques de la sortie grep ?

Sous linux, je peux grep une chaîne de caractères à partir d'un fichier en utilisant grep mySearchString myFile.txt . Comment puis-je obtenir uniquement les résultats qui sont uniques ?

149voto

Dalroth Points 2468

Vous pouvez y parvenir avec l'option sort y uniq des services publics.

exemple :

\[john@awesome ~\]$ echo -e "test\\ntest\\ntest\\nanother test\\ntest"
test
test
test
another test
test
\[john@awesome ~\]$ echo -e "test\\ntest\\ntest\\nanother test\\ntest" | sort | uniq
another test
test

Selon les données, vous pouvez aussi utiliser certains des commutateurs.

15voto

Pato Points 251

Vous pouvez utiliser :

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

-r : récursif

-o : n'imprime que la partie correspondante du texte

-h : ne pas imprimer les noms de fichiers

-P : regex de style Perl (vous pouvez utiliser -E à la place selon votre cas)

sort -u est meilleur que sort | uniq comme l'a souligné @Chris Johnsen.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X