Come filtrare le righe di un output di comando che si verificano in un file di testo?


15

Diciamo che abbiamo un file di testo di righe proibite forbidden.txt. Qual è un modo breve per filtrare tutte le righe di un output di comando che esistono nel file di testo?

cat input.txt | exclude-forbidden-lines forbidden.txt | sort

4
fgrep -vxf forbidden.txt input.txt | sort
Satō Katsura,

Risposte:


26

Usa grepcosì:

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

Quella lunga lista di opzioni grepsignifica

  • -vInvertire il senso della partita, ovvero cercare cose che non corrispondono.
  • -xQuando si abbina un motivo, è necessario che il motivo corrisponda all'intera linea , cioè non solo in qualsiasi punto della linea.
  • -FQuando si abbina un modello, trattarlo come una stringa fissa , cioè non come un'espressione regolare.
  • -fLeggi i pattern dal file specificato ( forbidden.txt).

Quindi convoglialo a sorto qualunque cosa tu voglia fare con esso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.