Remover parte do nome dos arquivos, pela posição dos caracteres [RESOLVIDO]

1. Remover parte do nome dos arquivos, pela posição dos caracteres [RESOLVIDO]

mayna helena azevedo
mayna

(usa Outra)

Enviado em 06/07/2019 - 14:59h

Olá a todos.

Preciso de um comando que delete parte dos nomes dos arquivos de uma pasta (que são muitos), mas pela posição do caractere. Por exemplo, o arquivo abaixo:

20180101010000-OSISAF-L3C_GHRSST-SSTsubskin-GOES16-ssteqc_goes16_20180101_010000-v02.0-fv01.0.nc

Preciso apenas do inicio do nome "20180101", o resto seria deletado. Todos arquivos tem o mesmo comprimento (mesmo número de caracteres), mas a data (tem no começo e no fim do arquivo) interfere quando utilizo códigos que encontrei na internet.

Alguém sabe o que fazer?
Agradeço desde já.


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 07/07/2019 - 19:25h


mayna escreveu:
Uso o Ubuntu.

Segue:
rename -n 's/^([0-9]{8})([0-9]+.*)$/$1.txt/' *.txt 

Obs.: O "parâmetro" "-n", testa e não altera o nome do arquivo, para fazer a alteração, retire o "-n"
Altere o "txt" para o seu uso.
IMPORTANTE => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver

3. Re: Remover parte do nome dos arquivos, pela posição dos caracteres

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 06/07/2019 - 18:38h

mayna escreveu:

Olá a todos.

Preciso de um comando que delete parte dos nomes dos arquivos de uma pasta (que são muitos), mas pela posição do caractere. Por exemplo, o arquivo abaixo:

20180101010000-OSISAF-L3C_GHRSST-SSTsubskin-GOES16-ssteqc_goes16_20180101_010000-v02.0-fv01.0.nc

Preciso apenas do inicio do nome "20180101", o resto seria deletado. Todos arquivos tem o mesmo comprimento (mesmo número de caracteres), mas a data (tem no começo e no fim do arquivo) interfere quando utilizo códigos que encontrei na internet.

Alguém sabe o que fazer?
Agradeço desde já.

Boa noite Mayna.
Seguem alternativas para "pegar" somente os oito primeiros caracteres:
NomeArq="20180101010000-OSISAF-L3C_GHRSST-SSTsubskin-GOES16-ssteqc_goes16_20180101_010000-v02.0-fv01.0.nc"
echo ${NomeArq:0:8}
20180101

sed: Apaga a partir do nono caractere:
sed -r 's/.//9g' <<< "$NomeArq" 

grep:
grep -Eo '^[0-9]{8}' <<< $NomeArq
20180101

cut:
cut -b 1-8 <<< $NomeArq
cut -c 1-8 <<< $NomeArq

awk:
awk -F "" '{for(x=1;x<=8;x++) printf "%s" ,$x;printf "\n"}' <<< $NomeArq 

É isso...

Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


4. Re: Remover parte do nome dos arquivos, pela posição dos caracteres [RESOLVIDO]

mayna helena azevedo
mayna

(usa Outra)

Enviado em 06/07/2019 - 20:52h

Mas como que faço para salvar esses arquivos com apenas os 8 primeiros caracteres? Para pegar todos os arquivos da pasta e salvar com o novo nome?




5. Re: Remover parte do nome dos arquivos, pela posição dos caracteres [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 07/07/2019 - 00:32h


mayna escreveu:

Mas como que faço para salvar esses arquivos com apenas os 8 primeiros caracteres? Para pegar todos os arquivos da pasta e salvar com o novo nome?


Qual distro vc usa?
Se derivada do Debian, o rename é bastante prático.
Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


6. Re: Remover parte do nome dos arquivos, pela posição dos caracteres [RESOLVIDO]

mayna helena azevedo
mayna

(usa Outra)

Enviado em 07/07/2019 - 16:47h

Uso o Ubuntu.


7. Re: Remover parte do nome dos arquivos, pela posição dos caracteres [RESOLVIDO]

mayna helena azevedo
mayna

(usa Outra)

Enviado em 08/07/2019 - 13:18h

msoliver escreveu:


mayna escreveu:
Uso o Ubuntu.

Segue:
rename -n 's/^([0-9]{8})([0-9]+.*)$/$1.txt/' *.txt 

Obs.: O "parâmetro" "-n", testa e não altera o nome do arquivo, para fazer a alteração, retire o "-n"
Altere o "txt" para o seu uso.
IMPORTANTE => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


Deu certinho! Muito obrigada!


8. Re: Remover parte do nome dos arquivos, pela posição dos caracteres [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 08/07/2019 - 13:58h


mayna escreveu:

msoliver escreveu:


mayna escreveu:
Uso o Ubuntu.

Segue:
rename -n 's/^([0-9]{8})([0-9]+.*)$/$1.txt/' *.txt 

Obs.: O "parâmetro" "-n", testa e não altera o nome do arquivo, para fazer a alteração, retire o "-n"
Altere o "txt" para o seu uso.
IMPORTANTE => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


Deu certinho! Muito obrigada!

Por nada....
Precisando.... Estou por aqui.
Agradeço a avaliação.

Att.: Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts