grep--exclude from:如何包含多个文件

grep--exclude from:如何包含多个文件,grep,Grep,如果我多次使用--exclude from(包括多个文件),是否将grep仅使用最后一个--exclude from或将其“或”将所有过滤器放在一个文件中(并使用一个--exclude from)?尽管从手册页或grep的源代码中都不清楚这一点,但从isadditive中排除。下面是我的例子: 制作五个名为“file.a”到“file.f”的文件,每个文件包含“test_string”,五个过滤器“ex_a.lst”到“ex_f.lst”,分别包含“*.a”到“*.f”: $ for X in

如果我多次使用
--exclude from
(包括多个文件),是否将
grep
仅使用最后一个
--exclude from
或将其“或”将所有过滤器放在一个文件中(并使用一个
--exclude from
)?

尽管从手册页或grep的源代码中都不清楚这一点,但从isadditive中排除。下面是我的例子:

制作五个名为“file.a”到“file.f”的文件,每个文件包含“test_string”,五个过滤器“ex_a.lst”到“ex_f.lst”,分别包含“*.a”到“*.f”:

$ for X in a b c d e f; do echo test_string > file.$X; echo file.$X > ex_$X.lst; done

$ ls -l
total 48
-rw-rw-r-- 1 user group  7 Jan 17 17:02 ex_a.lst
-rw-rw-r-- 1 user group  7 Jan 17 17:02 ex_b.lst
-rw-rw-r-- 1 user group  7 Jan 17 17:02 ex_c.lst
-rw-rw-r-- 1 user group  7 Jan 17 17:02 ex_d.lst
-rw-rw-r-- 1 user group  7 Jan 17 17:02 ex_e.lst
-rw-rw-r-- 1 user group  7 Jan 17 17:02 ex_f.lst
-rw-rw-r-- 1 user group 12 Jan 17 17:02 file.a
-rw-rw-r-- 1 user group 12 Jan 17 17:02 file.b
-rw-rw-r-- 1 user group 12 Jan 17 17:02 file.c
-rw-rw-r-- 1 user group 12 Jan 17 17:02 file.d
-rw-rw-r-- 1 user group 12 Jan 17 17:02 file.e
-rw-rw-r-- 1 user group 12 Jan 17 17:02 file.f

$ cat file.a
test_string

$ cat ex_a.lst 
file.a
在当前目录中搜索“test_string”,不带筛选器:

$ grep -R test_string | sort
file.a:test_string
file.b:test_string
file.c:test_string
file.d:test_string
file.e:test_string
file.f:test_string
所有文件都匹配。现在,从三个文件中添加三个过滤器:

$ grep -R test_string --exclude-from=ex_a.lst --exclude-from=ex_c.lst --exclude-from=ex_e.lst | sort
file.b:test_string
file.d:test_string
file.f:test_string
我们只剩下三个结果,那些没有被过滤掉的!要做到这一点,我们必须选择所有三个“ex_u[ace].lst”筛选文件