如何正确排除linux`grep`结果中的隐藏文件和目录?

问题描述 投票:0回答:1

编辑:不知不觉地使用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
命令吗?

linux bash macos grep gnu
1个回答
2
投票

对我来说,您编写的命令不会以

./
开头每个文件名。如果您在末尾添加一个点,即
-- 'something' .
,那么就可以了。无论如何,你可以这样做:

grep -r --color=always -n -H --exclude-dir='.*' -- 'something' "$PWD"

或者:

grep -r --color=always -n -H --exclude-dir='.?*' -- 'something'

旁注,您确定要

--exclude-dir
而不是
--exclude

© www.soinside.com 2019 - 2024. All rights reserved.