grep procura expressão e renomear arquivo

2

Eu tenho arquivos pdf legíveis que contêm a string VAX seguida por oito números, como VAX00002885 .

Agora quero encontrar essa expressão e renomear o pdf correspondente para VAX00002885.pdf (neste caso).

Como posso fazer isso?

    
por vloryan 30.09.2014 / 17:14

1 resposta

2

Tente isto (assumindo o GNU grep):

for pdf in *pdf; do
    mv "$pdf" "$(grep -aE 'VAX[0-9]*' "$pdf" | sed 's/.*\(VAX[0-9]*\).*//)"
done

Observe que isso pressupõe apenas uma instância de VAXNNNNNNN . Se você puder ter mais, use apenas a primeira correspondência:

for pdf in *pdf; do
    mv "$pdf" "$(grep -m 1 -aE 'VAX[0-9]*' "$pdf" | sed 's/.*\(VAX[0-9]*\).*//)"
done
    
por 30.09.2014 / 18:11

Tags