find files not in a list

怎甘沉沦 提交于 2019-12-03 01:41:48

Pipe your find command through grep -Fxvf:

find -mtime +7 -print | grep -Fxvf file.lst

What the flags mean:

-F, --fixed-strings
              Interpret PATTERN as a list of fixed strings, separated by newlines, any of which is to be matched.    
-x, --line-regexp
              Select only those matches that exactly match the whole line.
-v, --invert-match
              Invert the sense of matching, to select non-matching lines.
-f FILE, --file=FILE
              Obtain patterns from FILE, one per line.  The empty file contains zero patterns, and therefore matches nothing.

Pipe the find-command to grep using the -v and -f switches

find -mtime +7 -print | grep -vf file.lst > found.lst

grep options:

-v : invert the match
-f file: - obtains patterns from FILE, one per line

example:

$ ls
a  b  c  d  file.lst

$ cat file.lst 
a$
b$
c$


$ find . | grep -vf file.lst 
.
./file.lst
./d
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!