Comando rename para retirar parte do nome do arquivo [RESOLVIDO]

1. Comando rename para retirar parte do nome do arquivo [RESOLVIDO]

mayna helena azevedo
mayna

(usa Outra)

Enviado em 26/12/2019 - 15:58h

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á.


  


2. MELHOR RESPOSTA

Marcelo Oliver
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
______________________________________________________________________

3. Re: Comando rename para retirar parte do nome do arquivo

Osama Jr.
/bin/laden

(usa Void Linux)

Enviado em 26/12/2019 - 17:19h

De onde diaxos vc tirou esse '[0-15]'???

Forma correta:
rename 's/^([0-9]{14})([0-9]+.*)$/$1.csv/' *.csv 


##########################
echo 1244394795515721490698P | dc


4. Re: Comando rename para retirar parte do nome do arquivo [RESOLVIDO]

mayna helena azevedo
mayna

(usa Outra)

Enviado em 26/12/2019 - 18:16h

/bin/laden escreveu:

De onde diaxos vc tirou esse '[0-15]'???

Forma correta:
rename 's/^([0-9]{14})([0-9]+.*)$/$1.csv/' *.csv 


##########################
echo 1244394795515721490698P | dc


Achei que o 0-9 fosse os dígitos antes, e não os dígitos no geral.

rename 's/^([0-9]{14})([0-9]+.*)$/$1.csv/' *.csv também não deu certo, ele não faz nada.


5. Re: Comando rename para retirar parte do nome do arquivo [RESOLVIDO]

mayna helena azevedo
mayna

(usa Outra)

Enviado em 27/12/2019 - 14:24h

msoliver escreveu:

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
______________________________________________________________________


Deu certo! Muito obrigada!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts