我有一个文件夹 test ,
file1.txt
file2.wav
file3.txt
file4.py
我在 test 文件夹之外有一个 dont_include.txt 文件,其中包含内容
file1.txt
file4.py
如何打印 test 文件夹中的所有文件名,但 dont_include.txt 中列出的文件名除外
所需的输出:
file2.wav
file3.txt
答案 0 :(得分:1)
您可以使用grep:
ls test | grep -xvFf dont_include.txt -
-f
表示模式列表来自文件,在这种情况下为dont_include.txt。-F
表示模式被解释为文字字符串而不是正则表达式,因此a.txt与abtxt不匹配-x
仅匹配整行,即other_file.txt
不会匹配file.txt
-v
表示我们要打印不匹配行-
(可选)表示我们要过滤的列表是标准输入,在这种情况下,即ls
的输出。对于名称中带有换行符的文件,它不起作用(但是,将它们存储在文件中的每一行已经是错误的了。)