
現在ドットファイルを作成しており、プロジェクトディレクトリ内のすべてのコメントを一覧表示したいと思いますTODO: ...
。このためにbashエイリアスを作成しました。
alias mytodo='grep --recursive "TODO: "'
うまくいきますが、エイリアス定義も返します。サンプル出力です。
devs@dotfiles$ 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.
エイリアス定義を使用してその行を明示的に除外するにはどうすればよいですか?
答え1
正規表現の自己一致を防ぐ 1 つの方法は、個々の文字を文字クラスにまとめることです。
alias mytodo='grep --recursive "TOD[O]: "'
または(スティーブン・チャジェラス)、パターンに追加の引用符を使用してエイリアスを保存できます。
alias mytodo='grep --recursive "TO''DO: "'
その後、その行はまだ見つかりませんが、エイリアスには元のパターンが含まれています。たとえば、次を使用したい場合に便利です。固定文字列一致(grep -F
)。
答え2
単にパイプでgrep -v 'alias'
すべてalias
。