GNU/Linux >> Linux Esercitazione >  >> Linux

Usando Grep -ricorsivo, come escludere una riga specifica con la parola "indesiderata" e "ricercata" in essa?

Attualmente sto creando i miei dotfile e voglio elencare tutti i TODO: ... commenti nella directory del mio progetto, ho creato un alias bash per farlo:

 alias mytodo='grep --recursive "TODO: "'

Funziona bene, tuttavia restituisce anche la definizione dell'alias. questo è l'output di esempio.

 [email protected]$ mytodo

 bash/profile.d/aliases/: alias mytodo='grep --recursive "TODO: "'
 bin/git_branch_status/: # TODO: Add checking of remote branch status.
 tools/setup/: # TODO: Add search for existing symlinks.

come posso escludere specificamente quella riga con la definizione dell'alias?

Risposta accettata:

Un modo per impedire che un'espressione regolare corrisponda a se stessa è racchiudere un singolo carattere in una classe di caratteri:

alias mytodo='grep --recursive "TOD[O]: "'

In alternativa (consiglio di cappello a Stéphane Chazelas), puoi salvare l'alias con virgolette extra nello schema:

alias mytodo='grep --recursive "TO''DO: "'

Quindi la riga non verrà ancora trovata, ma l'alias contiene il modello originale. Questo è utile quando si desidera utilizzare ad es. una corrispondenza a stringa fissa (grep -F ).


Linux
  1. Lavorare con le pipe sulla riga di comando di Linux

  2. Come evidenziare una parola nell'output di "cat"??

  3. Come posso fare in modo che grep stampi le righe sotto e sopra ogni riga corrispondente?

  4. Come sostituire il contenuto di una colonna specifica con awk?

  5. Come afferrare una parola specifica e afferrare il testo

Come trovare una stringa o una parola specifica in file e directory

Come escludere file e directory con Rsync

Come eseguire la ricerca del modello nei file utilizzando Grep

Utilizzo del comando GREP in Linux con esempi

Manipolazione del testo dalla riga di comando con grep

Come eseguire l'output in coda -f con i colori utilizzando solo Awk e mostrare il resto dell'output?