FIND arquivos com múltiplos espaços nos nomes. [RESOLVIDO]

1. FIND arquivos com múltiplos espaços nos nomes. [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 14/08/2020 - 10:43h

Supondo que existam arquivos com espaços nos nomes, quero encontrar aqueles com múltiplos espaços repetidos, ou seja, mais de um espaço seguidos.

Exemplo (representando os espaços com pontos):
arquivo..nome...1.txt

Quero encontrá-los para renomear e deixar apenas um espaço:
arquivo.nome.1.txt

Qual seria a sintaxe correta usando o comando FIND?



  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/08/2020 - 15:33h

Ryuk escreveu:

Supondo que existam arquivos com espaços nos nomes, quero encontrar aqueles com múltiplos espaços repetidos, ou seja, mais de um espaço seguidos.

Exemplo (representando os espaços com pontos):
arquivo..nome...1.txt

Quero encontrá-los para renomear e deixar apenas um espaço:
arquivo.nome.1.txt

Qual seria a sintaxe correta usando o comando FIND?

Boa tarde Ryuk.
Se tens o "rename", é bem fácil....
Busca e altera!
rename -n 's/[ ]{2,}/ /g' *.txt 

Obs.: O argumento "-n", não altera, somente simula, para alterar, retire-o.
Outra:
for arq in *'  '*;do
novo=$(sed -r 's/ {2,}/_/g' <<< ${arq})
echo -e "Arq: \"$arq\"\nNovo \"$novo\"\n";
#mv "$arq" "$novo"
done

Obs;: Troquei "mais de um espaço", por "_", para facilitar a visualização.


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

3. Re: FIND arquivos com múltiplos espaços nos nomes. [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 14/08/2020 - 18:31h

Valeu Marcelo, fiz assim:
find /tmp/teste/ -regextype posix-extended -regex '.*[ ]{2,}.*' -exec rename -v 's/[ ]{2,}/ /g' {} \; 




4. Re: FIND arquivos com múltiplos espaços nos nomes. [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/08/2020 - 19:41h


Ryuk escreveu:

Valeu Marcelo, fiz assim:
find /tmp/teste/ -regextype posix-extended -regex '.*[ ]{2,}.*' -exec rename -v 's/[ ]{2,}/ /g' {} \; 



Ryuk, acredito que não é necessário o "find", visto que o "rename" altera somente o que casar com o padrão....
rename -v 's/[ ]{2,}/ /g'  /tmp/teste/* 


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


5. Re: FIND arquivos com múltiplos espaços nos nomes. [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 14/08/2020 - 20:32h

Sim, mas a intenção de usar o "find" é procurar os arquivos recursivamente em centenas de subpastas (milhares de arquivos), sacou!




6. Re: FIND arquivos com múltiplos espaços nos nomes. [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/08/2020 - 21:16h


Ryuk escreveu:

Sim, mas a intenção de usar o "find" é procurar os arquivos recursivamente em centenas de subpastas (milhares de arquivos), sacou!


Entendi......!


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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts