msoliver
(usa Debian)
Enviado em 26/12/2019 - 20:46h
mayna escreveu:
Olá a todos!
A um tempo, postei uma pergunta aqui sobre como deletar uma parte do nome do arquivo, pela posição dos caracteres. Por exemplo, existe vários (mais de 8 mil) arquivos com a seguinte composição de nome:
20180101010000-OSISAF-L3C_GHRSST-SSTsubskin-GOES16-ssteqc_goes16_20180101_010000-v02.0-fv01.0.nc
Da outra vez, precisa apenas dos 8 primeiros caracteres, ou seja, "20180101", o que foi proposto, e funcionou, pelo comando "rename 's/^([0-9]{8})([0-9]+.*)$/$1.csv/' *.csv". Entretanto, agora preciso dos primeiros 14 primeiros caracteres, mas ao mudar esse comando, nada ocorre: rename 's/^([0-15]{14})([0-15]+.*)$/$1.csv/' *.csv
Alguém sabe me informar o que estou fazendo de errado? Tópico anterior:
https://www.vivaolinux.com.br/topico/Comandos/Remover-parte-do-nome-dos-arquivos-pela-posicao-dos-ca...
Agradeço desde já.
Boa noite Mayna.
Segue sugestão:
rename 's/^([0-9]{14})(-.*)$/$1.csv/' *.csv
Simplicando:
rename 's/^(.{14})(-.*)$/$1.csv/' *.csv
Obs.:
^([0-9]{14}) => Casa os 14 primeiros numeros
(-.*$) => Casa tudo que tem depois dos 14 números iniciais
$1 => refere-se ao primeiro grupo casado.
No comando anterior, somente alterando a quantidade de "digitos" do 1ª grupo, não funciona.
Motivo:
Foram ulilizados Números para casar o inicio do 2º grupo,
([0-9]+.*)
Na situação atual, após o 14º digito, temos
-[A-Z]+
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________