Bash 使用文本文件提取目录中不匹配的文件
我在一个目录中有100个文件,一个文本文件列出了其中35个文件Bash 使用文本文件提取目录中不匹配的文件,bash,awk,grep,Bash,Awk,Grep,我在一个目录中有100个文件,一个文本文件列出了其中35个文件 ####Directory apple carrot orange pears bananas ###text file apple carrot orange 我想使用这个有文件名的文本文件,并在目录中进行比较,以将不匹配的文件名放入一个单独的文件中。因此,它将是一个如下所示的文件: ##unmatched text file pears bananas 我知道如果搜索词是一个特定的字符串,那么可以使用find来实现这一
####Directory
apple carrot orange pears bananas
###text file
apple
carrot
orange
我想使用这个有文件名的文本文件,并在目录中进行比较,以将不匹配的文件名放入一个单独的文件中。因此,它将是一个如下所示的文件:
##unmatched text file
pears
bananas
我知道如果搜索词是一个特定的字符串,那么可以使用find来实现这一点,但我无法理解这一点假设文本文件包含目录中文件的子集。另外,假设文件名为list.txt,目录名为dir1,则以下操作将起作用:
(cat list.txt; ls -1 dir1) | sort | uniq -u
解释
- 命令
启动子shell,执行(cat list.txt;ls-1 dir1)
和cat
命令ls
- 然后对组合输出进行排序,
将挑选出唯一的(不重复的)输出uniq-u
(cat list.txt; ls -1 dir1) | sort | uniq -u > list2.txt
假设文本文件包含目录中文件的子集。另外,假设文件名为list.txt,目录名为dir1,则以下操作将起作用:
(cat list.txt; ls -1 dir1) | sort | uniq -u
解释
- 命令
启动子shell,执行(cat list.txt;ls-1 dir1)
和cat
命令ls
- 然后对组合输出进行排序,
将挑选出唯一的(不重复的)输出uniq-u
(cat list.txt; ls -1 dir1) | sort | uniq -u > list2.txt