Otimizar a fórmula de regex para verificar nomes de arquivos

0

Estou trabalhando em uma fórmula de regex que verificará se o arquivo fornecido para processamento possui um dos seguintes formatos:

  1. SN1234_filename.pdf
  2. SN1234_filename.pdf.zip

Isso é o que eu tenho agora:

MYFILE="SN39586_invoice.pdf"  
ISZIP=0  
if [ $ISZIP -eq 0 ]; then  
    FORMAT='^SN[0-9]+\_[a-zA-Z0-9]+\.pdf$'  
    else  
        FORMAT='^SN[0-9]+\_[a-zA-Z0-9]+\.pdf\.zip$'  
    fi

if [[ $MYFILE =~ $FORMAT ]]; then  
  # Do some processing  
  else  
  echo "invalid file format"  
fi

Isso está funcionando atualmente, mas eu quero me livrar do bloco if-else que define a variável FORMAT. Como posso otimizar a variável FORMAT?

    
por smokinguns 17.12.2011 / 08:12

1 resposta

0

Use o operador ? , que corresponde a zero ou uma ocorrência do caractere ou grupo anterior:

^SN[0-9]+_[a-zA-Z0-9]+\.pdf(\.zip)?$
    
por 17.12.2011 / 09:46