Como eu verifico se o nome de algum arquivo corresponde a algum padrão (tem “SSS”, por exemplo) na cláusula 'if'?

0

Como posso verificar se o nome de algum arquivo corresponde a algum padrão (por exemplo, "SSS") na cláusula if ? Minha variante parece não funcionar (é sempre falsa).

for f in B/* ; do
    if [ $f = .*SSS.* ] ; then
#    if [ -f $f ] -and -regex ".*SSS.*"; then
        echo $f
    fi
done
    
por Kosarar 26.02.2017 / 20:17

1 resposta

1

Você precisa de colchetes duplos e não '.' (Shell globbing não regex sed)

for f in B/* ; do
    if [[ $f = *SSS* ]] ; then
        echo $f
    fi
done

Um pouco do google te dá link

    
por 27.02.2017 / 00:38

Tags