2017-06-21 32 views
3

我有一个blacklist文件:如何从ls中排除列入黑名单的文件?

$ cat blacklist 
Iran 
Iraq 
Libya 
Somalia 
Sudan 
Syria 
Yemen 

如何排除在从ls输出这个blacklist文件中列出的文件吗?我已阅读手册页,最接近的是--ignore选项,不幸的是它没有读取文件。我还想过将ls的输出传输到grep,并使用--invert-match选项忽略blacklist文件中的所有文件,但我不知道如何执行此操作。

回答

6

如果你必须使用ls,你可以这样做:

ls | grep -vFxf blacklist 
  • -v反转选择
  • -F治疗从文件黑名单行作为字符串,而不是模式
  • -x匹配整行
  • -f从黑名单中读取模式/字符串以匹配

请注意,上述解决方案适用于所有情况,除非文件名中有换行符。

相关问题