Si grep un archivo que contiene lo siguiente:
These are words
These are words
These are words
These are words
... para la palabra These
, imprimirá la cadena These are words
cuatro veces.
¿Cómo puedo evitar que grep imprima cadenas recurrentes más de una vez? De lo contrario, ¿cómo puedo manipular la salida de grep para eliminar líneas duplicadas?
command-line
bash
grep
Trae
fuente
fuente
Respuestas:
La filosofía de Unix es tener herramientas que hagan una cosa y las hagan bien. En este caso,
grep
es la herramienta que selecciona texto de un archivo. Para saber si hay duplicados, uno clasifica el texto. Para eliminar los duplicados, uno usa la-u
opción parasort
. Así:sort
tiene muchas opciones: verman sort
. Si desea contar duplicados o tiene un esquema más complicado para determinar qué es o no es un duplicado, canalice la salida de clasificación auniq
:grep These filename | sort | uniq
y veaman
uniq` para ver las opciones.fuente
Uso
grep
y un interruptor adicional, si está buscando una sola cadenaDesde
man grep
o usando
awk
;)fuente