複数のファイルのパターンに基づいてzshスクリプトの引数を確認し、他のジョブの一致パターンを追跡します。

複数のファイルのパターンに基づいてzshスクリプトの引数を確認し、他のジョブの一致パターンを追跡します。

スケーリングの問題ですzshスクリプトのパラメータがモードにあるかどうかを確認する方法

上記のリンクは、改行で区切られたファイルのパターンリストを最初の引数として解決するzshスクリプトの問題を解決します。私はこれを次のように拡張したいと思います。

  1. フォルダー配列の複数のフォルダーに存在する可能性のある複数のファイルのパターンを確認します。

  2. 別の操作、つまり.conf追加の設定を読み込むために、一致するパターンを追跡し続けます。

この質問をするとき、私はまだマルチタスク中です。後で更新します。解決策があれば本当にありがとうございます。

ベストアンサー1

files=($^array_of_folders/**/*.pattern(.N)) # assuming pattern files
                                            # have a .pattern extension
pattern="($(cat -- $files | paste -sd '|' -))"
if [[ $1 = $~pattern ]]; then
   print -r -- "$1 matches $pattern"
fi

ただし、どのパターンが一致するかを知りたい場合は、次のことを行う必要があります。

files=($^array_of_folders/**/*.pattern(.N))
patterns=(${(f)"$(cat -- $files)"})
matching_patterns=()
for pattern ($patterns) {
   [[ $1 = $~pattern ]] && matching_patterns+=$pattern
}
print -r -- "$1 matched by $#matching_patterns patterns: $matching_patterns"

おすすめ記事