如何从ls中排除列入黑名单的文件?

时间:2017-06-21 23:40:00

标签: bash grep ls

我有blacklist个文件:

$ cat blacklist
Iran
Iraq
Libya
Somalia
Sudan
Syria
Yemen

如何从blacklist的输出中排除此ls文件中列出的文件?我已经阅读了手册页,最接近的是--ignore选项,遗憾的是它没有读取文件。我还考虑将ls的输出汇总到grep并使用--invert-match选项忽略blacklist文件中的所有文件,但我不知道该怎么做如此。

1 个答案:

答案 0 :(得分:8)

如果您必须使用ls,则可以执行此操作:

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

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