여러 파일의 패턴을 기반으로 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"

관련 정보