|
From: | Julio C. Neves |
Subject: | Re: [shell-script-pt] Localizar arquivos e substituir |
Date: | Mon, 20 Sep 2021 19:07:28 -0300 |
> ${velho##*.} expande: .xls
Aqui, o ponto (.) foi no embalo... é só `xls`.
Blau Araujo
-----------------------------
https://debxp.org
https://blauaraujo.com
Em 20/09/2021 18:19, Blau Araujo escreveu:
> Muito legal!
>
>
>
> Descartando o `rev`, também poderia ser assim:
>
>
> ```
> :~$ velho=Arquivo1-20.09.2021-Prof.Marcelo.xls
> :~$ novo=$(sed 's/\./_/g' <<< ${velho%.*}).${velho##*.}
> :~$ echo $novo
> Arquivo1-20_09_2021-Prof_Marcelo.xls
>
> ```
>
> Explicando:
>
> ${velho%.*} expande: Arquivo1-20.09.2021-Prof.Marcelo
> O *menor casamento* com o padrão '.*' no final da string
>
> ${velho##*.} expande: .xls
> O *maior casamento* com o padrão '*.' no início da string
>
>
>
> Abraços!
>
> Blau Araujo
> -----------------------------
> https://debxp.org
> https://blauaraujo.com
>
> Em 20/09/2021 17:25, Julio C. Neves escreveu:
>> Gostei da ideia do Alfredo de inverter (rev) e desinverter e vou
>> aproveitar para uma dica não muito conhecida, que faz parte da caixa
>> de ferramentas do sed e portanto tb faz parte do material do meu curso
>> sobre programação Shell. Veja como dá uma simplificada:
>>
>> *$ ArqInv=$(rev <<< $Arq)
>> $ ArqNovo=$(sed 's/\./_/2g' <<< $ArqInv | rev)*
>>
>> O macete a que me refiro é o *2g*, que significa a partir do 2º,
>> global. Veja:
>> *$ sed 's/a/X/' <<< abracadabra
>> *Xbracadabra
>> *$ sed 's/a/X/2' <<< abracadabra
>> *abrXcadabra
>> *$ sed 's/a/X/3' <<< abracadabra
>> *abracXdabra
>> *$ sed 's/a/X/3g' <<< abracadabra
>> *abracXdXbrX
>>
>> Abraços,
>> Julio
>> *» Não tem tempo para fazer um curso presencial?*
>> *» Na sua cidade não tem nenhum bom curso de Linux?*
>> *Veja detalhes** em:
>> **https://www.dicas-l.com.br/educacao/programacao-shell-linux/
>> <https://www.dicas-l.com.br/educacao/programacao-shell-linux/>*
>> *
>> *
>> *Também damos treinamento em sua empresa*
>> *em qualquer cidade**, **com certificado **e nota fiscal.*
>> *
>> *
>>
>>
>>
>>
>>
>>
>>
>> Em seg., 20 de set. de 2021 às 14:24, Alfredo Casanova
>> <atcasanova@gmail.com <mailto:atcasanova@gmail.com>> escreveu:
>>
>> Sem parar pra bolar algo mirabolante:
>>
>> filename=Arquivo1-20.09.2021-Prof.Marcelo.xls
>> newname=$(rev <<< $filename | cut -f2- -d. | rev | sed 's/\./_/g')
>> ext=$(rev <<< $filename | cut -f1 -d. | rev)
>>
>> mv "$filename" "$newname.$ext"
>>
>>
>> On Mon, Sep 20, 2021 at 2:01 PM Marcelo <msalavee@gmail.com
>> <mailto:msalavee@gmail.com>> wrote:
>>
>> Boa Tarde,
>>
>> Tenho um servidor samba que alguns usuários começaram a salvar
>> arquivos e diretórios com (.) no nome, por exemplo:
>>
>> Arquivo1-20.09.2021-Prof.Marcelo.xls
>>
>> Estou querendo bloquear este tipo de arquivo, mas antes preciso
>> renomeá-los.
>>
>> gostaria de substituir os (.) pontos no nome por (_)underline e
>> deixar obviamente o (.) na extensão.
>>
>> o Nome do arquivo ficaria:
>>
>> Arquivo1-20_09_2021-Prof_Marcelo.xls
>>
>> Alguém poderia dar uma dica?
>>
>>
>> Obrigado,
>> Marcelo
>> _______________________________________________
>> Lista brasileira de usuários de shell script
>> Endereço de e-mail da lista: shell-script-pt@nongnu.org
>> <mailto:shell-script-pt@nongnu.org>
>> Para se inscrever ou desinscrever acesse:
>> https://lists.nongnu.org/mailman/listinfo/shell-script-pt
>> <https://lists.nongnu.org/mailman/listinfo/shell-script-pt>
>> Para ver os arquivos da lista (mensagens anteriores) e pesquisar
>> nelas, acesse
>> https://lists.nongnu.org/archive/html/shell-script-pt/
>> <https://lists.nongnu.org/archive/html/shell-script-pt/>
>>
>> NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por
>> favor utilize somente esta.
>>
>>
>>
>> -- []'s
>> Alfredo Tristão Casanova
>> Linux User #228230
>>
>> _______________________________________________
>> Lista brasileira de usuários de shell script
>> Endereço de e-mail da lista: shell-script-pt@nongnu.org
>> <mailto:shell-script-pt@nongnu.org>
>> Para se inscrever ou desinscrever acesse:
>> https://lists.nongnu.org/mailman/listinfo/shell-script-pt
>> <https://lists.nongnu.org/mailman/listinfo/shell-script-pt>
>> Para ver os arquivos da lista (mensagens anteriores) e pesquisar
>> nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/
>> <https://lists.nongnu.org/archive/html/shell-script-pt/>
>>
>> NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor
>> utilize somente esta.
>>
>>
>> _______________________________________________
>> Lista brasileira de usuários de shell script
>> Endereço de e-mail da lista: shell-script-pt@nongnu.org
>> Para se inscrever ou desinscrever acesse:
>> https://lists.nongnu.org/mailman/listinfo/shell-script-pt
>> Para ver os arquivos da lista (mensagens anteriores) e pesquisar
>> nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/
>>
>> NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor
>> utilize somente esta.
>>
>
> _______________________________________________
> Lista brasileira de usuários de shell script
> Endereço de e-mail da lista: shell-script-pt@nongnu.org
> Para se inscrever ou desinscrever acesse:
> https://lists.nongnu.org/mailman/listinfo/shell-script-pt
> Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas,
> acesse https://lists.nongnu.org/archive/html/shell-script-pt/
>
> NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor
> utilize somente esta.
_______________________________________________
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/
NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.
[Prev in Thread] | Current Thread | [Next in Thread] |