79
79
¿Cómo puedo filtrar los resultados únicos de la salida de grep?
En linux, puedo grep una cadena de un archivo usando grep mySearchString myFile.txt
. ¿Cómo puedo obtener sólo el resultado que es único?
En linux, puedo grep una cadena de un archivo usando grep mySearchString myFile.txt
. ¿Cómo puedo obtener sólo el resultado que es único?
Puede conseguirlo con las utilidades sort
y uniq
.
ejemplo:
[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
dependiendo de los datos puede querer utilizar también algunos de los interruptores.
Puede utilizar:
grep -rohP "(mySearchString)" . | sort -u
-r: recursivo
-o: sólo imprime la parte del texto que coincide
-h: no imprime los nombres de los archivos
-P: regex estilo Perl (puede usar -E en su lugar dependiendo de su caso)
sort -u
es mejor que sort | uniq
, como señaló @Chris Johnsen.