스케일링 문제입니다zsh 스크립트의 매개변수가 모드에 있는지 확인하는 방법
위의 링크는 줄 바꿈으로 구분된 파일의 패턴 목록을 첫 번째 인수로 확인하는 zsh 스크립트 문제를 해결합니다. 나는 이것을 다음과 같이 확장하고 싶습니다.
폴더 배열의 여러 폴더에 있을 수 있는 여러 파일의 패턴을 확인합니다.
또 다른 작업, 즉
.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"