GNU/Linux >> Linux Esercitazione >  >> Linux

Grep Come sopprimere la visualizzazione di file non corrispondenti?

Sto cercando di trovare file contenenti una parola specifica usando grep . Ci sono molti file nella directory (> 500)

Comando eseguo

$ grep 'delete' *

Uscita

validate_data_stage1:0
validate_data_stage2:0
validate_data_stage3:0
validate_data_stage4:0
validate_data_stage5:0
validate_input_stage1:0
validate_input_stage2:0
validate_input_stage3:0
validate_input_stage4:0
.... and hundred of such lines

Questi sono i file che non contengono la corrispondenza indicata. Voglio sopprimere quelle righe dalla visualizzazione allo stdout. Conosco -q interruttore, ma ciò sopprimerebbe l'output completo, cosa che non voglio.

Come faccio?

Risposta accettata:

Questo è il comportamento mostrato da grep -c .

Probabilmente hai un file il cui nome inizia con - e contiene un c carattere e stai usando GNU grep senza impostare il POSIXLY_CORRECT variabile di ambiente.

Usa:

grep -- delete *

o meglio:

grep delete ./*

-- segna la fine delle opzioni in modo che quel nome file non venga considerato come un'opzione (con un POSIX grep, non lo sarebbe poiché la non opzione delete argomento avrebbe segnato la fine delle opzioni), ma non risolverebbe il problema di un file chiamato - . Il grep delete ./* è più robusto ma ha lo svantaggio di produrre l'extra ./ per la corrispondenza dei file (anche se può essere considerato un bonus poiché aiuta a identificare i nomi di file che contengono caratteri di nuova riga).


Linux
  1. Come posso cercare uno schema multilinea in un file?

  2. Come eseguire il "grep" di un flusso continuo?

  3. Come eseguire il grep per i contenuti dopo il modello?

  4. Come sopprimere i risultati della corrispondenza dei file binari in grep

  5. Come visualizzare l'elenco dei processi in esecuzione Python?

Come spostare un file in Linux

Come escludere in Grep

Come creare un file in Linux

Come trovare una stringa in un file su Linux

Come visualizzare i dati da un file di testo in Linux

Come visualizzare il contenuto del file in modo ricorsivo?