shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script-pt] Localizar arquivos e substituir


From: Blau Araujo
Subject: Re: [shell-script-pt] Localizar arquivos e substituir
Date: Mon, 20 Sep 2021 18:19:13 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0

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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]