배열을 기반으로 파일을 찾는 방법

배열을 기반으로 파일을 찾는 방법

확장자 없이 파일 이름 목록이 포함된 배열이 있습니다. 예를 들면 다음과 같습니다.

filearray=("fileA" "fileB" "fileC")

이러한 파일은 여러 디렉터리에 분산되어 있습니다. 디렉터리를 반복하면서 각 디렉터리에 있는 배열의 파일에 대해 작업을 수행하려고 합니다. 배열과 함께 find 또는 grep을 사용하는 방법은 무엇입니까?

이런 일을 할 수 있나요? :

Dirarray= ("dirA" "dirB")
for Dir in "${Dirarray[@]}"; do
    cd "$Dir";
    for file in "${filearray[@]}"; do
        if find . -regextype posix-extended -regex "$file"; then;
            do X;
        fi;
     done
done

감사해요!

답변1

나는 다르게 할 것입니다.

Dirarray= ("dirA" "dirB")
for Dir in "${Dirarray[@]}"; do
    cd "$Dir"
    for file in "${filearray[@]}"; do
# Here a change. If "$file" exists...
        if [[ -e "$file"]]; then
            : # do something
        fi
     done
done

man test더 많은 파일 테스트 옵션은 리소스를 참조하세요 .

그 이유는 이 방법이 훨씬 간단하기 때문입니다. 배열에 정규식이 포함되어 있지 않다면 말이죠.

관련 정보