我目前正在构建我的点文件,我想列出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.
如何使用别名定义专门排除该行?
防止正则表达式匹配自身的一种方法是将单个字符包含在字符类中:
或者(向Stéphane Chazelas 致敬),您可以在模式中使用额外的引号保存别名:
然后仍然找不到该行,但别名包含原始模式。这在您想使用例如时很有帮助。固定字符串匹配 (
grep -F
)。您可以简单地将其通过管道输入
grep -v 'alias'
以获取所有不包含alias
.