79
79
Como posso filtrar resultados únicos da saída do grep?
Em linux, posso grepear uma corda de um ficheiro usando grep mySearchString myFile.txt
. Como posso obter apenas o resultado que é único?
Em linux, posso grepear uma corda de um ficheiro usando grep mySearchString myFile.txt
. Como posso obter apenas o resultado que é único?
Pode conseguir isto com os sort
e uniq
utilitários.
exemplo:
[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
dependendo dos dados que possa querer utilizar também alguns dos comutadores.
Pode utilizar:
grep -rohP "(mySearchString)" . | sort -u
-r: recursivo
-o: imprimir apenas parte correspondente do texto
-h: não imprimir nomes de ficheiros
-P: regex estilo Perl (pode usar -E em vez disso, dependendo do seu caso)
sort -u
é melhor do que sort | uniq
, como @Chris Johnsen assinalou.