Eu tenho várias gravações com um esquema de nome de arquivo como este
%year%month%day-%hour%minute%second__%phonenumber.amr
e.g.:
20190212-112007__+313206601234.amr
Eu quero trocar palavras para obter:
%phonenumber_%day-%month-%year_%hour-%minute-%second.amr
e.g.:
+313206601234__12-02-2019_11-20-07.amr
Eu sei que posso usar sed
utilitário, mas sua sintaxe é como uma linguagem arcaica, além disso, estou confuso sobre o uso de ambos [0-9] and .
para substituição.
Trata-se de usar grupos de dígitos capturados e colocar grupos nos locais desejados para obter o nome necessário:
-E
habilita ERE (Expressões Regulares Estendidas)[[:digit:]]
corresponde a um dígito com reconhecimento de localidade{N}
correspondeN
ao número do token anterior, por exemplo[[:digit:]]{2}
, corresponde a 2 dígitos; isso também pode ser um intervalo, por exemplo,[[:digit:]]{2,4}
corresponde a 2 a 4 dígitosExemplo: