我有一个文件目录。我想检查其中哪些文件未在另一个文件 ( content.txt
) 的内容中列出。
content.txt
包含文件名,但还包含前后的一些文本,所以我正在寻找子字符串搜索。
例子:
$ ls
./file1 ./file2 ./file3
$ cat /some/path/content.txt
name: file2 (y)
age: file6 (z)
height: file9 (x)
我希望假设的脚本返回:
file1
file3
我当前的非工作解决方案是使用find .
列出所有文件,然后使用 sed 替换来替换文件夹名称,然后尝试使用 grep 来查看它是否在文件中:
find . | sed 's|MyFolder/||' | xargs -I {} -0 grep {} /some/path/content.txt
这似乎效率低下,我不知道如何进一步进行。我考虑过使用 grep-qs
并检查 xargs 的退出代码,但这只会产生一个输出,而不是检查每个文件。
find . | sed 's|MyFolder/||' | (xargs -I {} -0 grep {} /some/path/content.txt) && echo "true" || echo "false"