Como encontrar arquivos baseados em array

2

Eu tenho uma matriz que contém uma lista de nomes de arquivos (sem extensão) ex:

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

Esses arquivos são divididos em vários diretórios. Ao percorrer os diretórios, gostaria de executar uma operação nos arquivos da matriz que estão presentes em cada diretório. Como posso usar o find ou o grep com um array?

Posso fazer algo assim?:

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

Obrigado!

    
por Alex 06.10.2016 / 23:45

1 resposta

1

Eu faria de uma maneira diferente.

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

Veja man test para mais opções de teste de arquivo.

A razão é que isso é muito mais simples. Bem, desde que a matriz não contenha expressões regulares.

    
por 07.10.2016 / 00:11

Tags