我有blacklist
个文件:
$ cat blacklist
Iran
Iraq
Libya
Somalia
Sudan
Syria
Yemen
如何从blacklist
的输出中排除此ls
文件中列出的文件?我已经阅读了手册页,最接近的是--ignore
选项,遗憾的是它没有读取文件。我还考虑将ls
的输出汇总到grep
并使用--invert-match
选项忽略blacklist
文件中的所有文件,但我不知道该怎么做如此。
答案 0 :(得分:8)
如果您必须使用ls
,则可以执行此操作:
ls | grep -vFxf blacklist
-v
反转选择-F
将文件黑名单中的行视为字符串,而不是模式-x
匹配整行-f
从黑名单中读取匹配的模式/字符串请注意,上述解决方案适用于所有情况,除非文件名中包含换行符。