我有一个脚本,该脚本列出文件以查看是否存在。我可以选择一些文件,但是有些文件后缀为“(Demo)”,我想忽略它。我想列出所有包含“我需要帮助”的文件,但要忽略那些包含“演示”一词的文件。不幸的是,这行不通;
ls -1 "I Need Help"* --ignore=*Demo* 2>/dev/null
因为仍会列出一个名为“我需要帮助(演示)”的文件。 我需要这样做,因为有时“我需要帮助”的末尾会有多余的单词(例如“我需要帮助,请漂亮”,然后是“(演示)”后缀。有人可以在右边指出我吗?方向吗?非常感谢
答案 0 :(得分:0)
$ shopt -s extglob
$ ls "I Need Help"!(*Demo*)
答案 1 :(得分:0)
选项必须在任何文件名参数之前。
ls -1 --ignore="*Demo*" "I Need Help"*
但是,这将不起作用,因为--ignore
仅过滤掉隐含的条目,而不过滤掉明确列为参数的名称。当您列出目录时,隐式条目就会出现,它将目录扩展到目录中的所有文件---ignore
将从列表中过滤名称。
您可以将输出传递到另一个命令以过滤出这些行:
ls -1 "I Need Help"* | grep -v Demo