¿Cómo filtrar las líneas de una salida de comando que ocurren en un archivo de texto?

15

Digamos que tenemos un archivo de texto de líneas prohibidas forbidden.txt. ¿Cuál es una forma corta de filtrar todas las líneas de una salida de comando que existen en el archivo de texto?

cat input.txt | exclude-forbidden-lines forbidden.txt | sort
danijar
fuente
44
fgrep -vxf forbidden.txt input.txt | sort
Satō Katsura

Respuestas:

26

Usar grepasí:

$ grep -v -x -F -f forbidden.txt input.txt

Esa larga lista de opciones para los grepmedios

  • -vInvierta el sentido del partido, es decir, busque cosas que no coincidan.
  • -xAl hacer coincidir un patrón, requiera que el patrón coincida con la línea completa , es decir, no solo en cualquier lugar de la línea.
  • -FAl hacer coincidir un patrón, trátelo como una cadena fija , es decir, no como una expresión regular.
  • -fLeer patrones del archivo dado ( forbidden.txt).

Luego canalice eso sorto lo que quiera hacer con él.

Kusalananda
fuente