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
).