编辑:不知不觉地使用macOS内置grep,它是bsd grep而不是gnu grep,但答案适用于GNU grep。
我正在尝试排除 grep 命令中的隐藏文件和目录。
我在here找到了一些答案,但它们不起作用:
grep -r --color=always -n -H --exclude-dir='.*' -- 'something'
原因是
grep
会输出如下内容:
./README.md:178:Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
./README.md:179:Plug 'linrongbin16/fzfx.nvim'
./README.md:183:lua require('fzfx').setup()
./README.md:194: use { "junegunn/fzf", run = ":call fzf#install()" }
它们都以
./
开头,因此如果简单地设置 --exclude-dir='.*'
,将排除所有输出。
您能帮我正确的
grep
命令吗?
对我来说,您编写的命令不会以
./
开头每个文件名。如果您在末尾添加一个点,即 -- 'something' .
,那么就可以了。无论如何,你可以这样做:
grep -r --color=always -n -H --exclude-dir='.*' -- 'something' "$PWD"
或者:
grep -r --color=always -n -H --exclude-dir='.?*' -- 'something'
旁注,您确定要
--exclude-dir
而不是 --exclude
?