我试图将复杂的正则表达式作为忽略模式传递。我想忽略locales/
的所有子文件夹,但 locales/US/en/*
除外。我可能需要回退使用.agignore文件,但我试图避免这种情况。
我使用银色搜索器(类似于Ack,Grep)。我在终端使用zsh。
这非常有效并且忽略了所有语言环境子文件夹, locales/US
除外:
ag -g "" --ignore locales/^US/ | fzf
我还想忽略locales/US/*
的所有locales/US/en
除外的所有内容
我想要的是这个,但它不起作用。
ag -g "" --ignore locales/^US/^en | fzf
思想?
答案 0 :(得分:1)
添加多个--ignore命令。例如:
ag -g "" --ignore locales/^US/ --ignore locales/US/^en
答案 1 :(得分:0)
以下内容也适用:
find locales/* -maxdepth 0 -name 'US' -prune -o -exec rm -rf '{}' ';'
-prune 真正;如果文件是目录,请不要进入该目录。如果给出-depth,则为false;没有效果。因为-delete暗示-depth,所以你不能有效地一起使用-prune和-delete。
-prune
可让您过滤结果(better description here)
-exec命令; 执行命令;如果返回0状态,则返回true。以下所有要查找的参数都被视为命令的参数,直到由&#39 ;;'组成的参数为止。遇到了。字符串' {}'由在命令参数中出现的任何位置处理的当前文件名替换,而不仅仅是在某些版本的find中的参数中。这两种结构都可能需要进行转义(使用' \')或引用以保护它们不被shell扩展。有关使用-exec选项的示例,请参阅“示例”部分。为每个匹配的文件运行一次指定的命令。该命令在起始目录中执行。围绕使用-exec操作存在不可避免的安全问题;你应该使用-execdir选项。
-exec
允许您对任何结果find
返回执行命令。