Linux 打印文件名列表,文本文件中指定的文件名除外

Linux 打印文件名列表,文本文件中指定的文件名除外,linux,bash,shell,Linux,Bash,Shell,我有一个文件夹测试 我在测试文件夹外有一个包含内容的dont_include.txt文件 file1.txt file4.py 如何打印测试文件夹中除dont_include.txt中列出的文件名以外的所有文件名 期望输出: file2.wav file3.txt 您可以使用grep: ls test | grep -xvFf dont_include.txt - -f表示模式列表取自文件,本例中不包含.txt -F表示模式被解释为文本字符串而不是正则表达式,因此a.txt与abtxt不匹

我有一个文件夹测试

我在测试文件夹外有一个包含内容的dont_include.txt文件

file1.txt
file4.py
如何打印测试文件夹中除dont_include.txt中列出的文件名以外的所有文件名

期望输出:

file2.wav
file3.txt
您可以使用grep:

ls test | grep -xvFf dont_include.txt -
-f表示模式列表取自文件,本例中不包含.txt -F表示模式被解释为文本字符串而不是正则表达式,因此a.txt与abtxt不匹配 -x仅匹配整行,即其他_file.txt不会与file.txt匹配 -v表示我们要打印不匹配的行 -可选意味着我们筛选的列表是标准输入,即在本例中是ls的输出。
它不适用于名称中有换行符的文件,但将它们存储在一个文件中(每行一个)已经是错误的。

我可以使用find打印文件夹中的文件名。/-printf%f\n。我可以使用python脚本来完成,但我正在寻找一些bash commandprintf“%s\n”*| grep-vFf dont_include.txt,来自内部测试文件夹请避免向我提出codez问题。而是显示您正在处理的脚本,并说明问题所在。也看得很好。谢谢你的解释。我应该阅读grep文档,最好在grep选项中添加-x匹配整行。这将防止像其他_file1.txt这样的文件被排除。
ls test | grep -xvFf dont_include.txt -