#!/usr/bin/zsh
zparseopts -D -E -- p:=p -path+:=p r:=regex -regex:=regex gi:=gitignore -gitignore:=gitignore
PATH=/my/path:/stuff
GI=("${(@f)$(cat $gitignore[2] | sed '/^#/ d')}")
R=("${${(@f)$(find $p[2] -type f -regex $regex[2])}:%GI[@]}")
echo $R
#echo ${(z)R} | grep -v -F ${(z)GI} -
我正在尝试创建自己的预定义find
变体,该变体使用名称参数查找不在指定的.gitignore文件/文件夹中的所有内容。
我发现#
以及相反的%
模式匹配扩展都可以完成这项工作。
但是,它不起作用。老实说,我很少了解这些文档,因为我对shell脚本很陌生。
有没有简单的方法可以使这项工作?
我的另一种方法是使用grep,如下所述,这给我带来了错误,因为我的列表条目没有被视为字符串,而且我找不到合适的字符串扩展。
帮助表示赞赏。
用法示例:
seek -p ~/git/prudencss/angular -r .*component.* -gi ~/git/prudencss/angular/.gitignore