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

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

Re: [shell-script] Re: Substituição de valores por * após um padrão


From: Paulo
Subject: Re: [shell-script] Re: Substituição de valores por * após um padrão
Date: Fri, 29 Nov 2019 01:52:37 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2

Olá Rodrigo, o teu sed então deve ser uma versão que reconhece o
lazy quantifier e talvez perl regex também, o Gnu sed não reconhece.
Se for esse o caso e o teu sed tiver a opção --debug, rode com essa
opção pra ver os loops e os asteriscos aparecendo do fim pro meio
da senha :) (com um '|less' no fim porque a saída fica grande).
Esse script funcionou aqui pra mim com o Gnu sed.
Abraços Paulo

On 28/11/2019 14:14, Rodrigo Tenorio address@hidden [shell-script] wrote:
Paulo,

Maneira sua solução!
para mim funcionou somente com o uso do lazy quantifier.
sed -r ":a;s/(.*?:...*)[^*]/\1*/;ta" arquivoComEmailSenha.txt

Para quem quiser entender...
:a = Cria um label chamado "a";
s = wildcard de substituição;

/..................../.........../ = /Tudo que está aqui dentro é a 
pesquisa/tudo que está aqui é a substituição/
(.*?:...*)[^*]
() = cria grupo
. = qualquer caractere
* = repetição de 0 ou N vezes
*? = repetição de 0 ou N vezes pegando o mínimo possível = lazy quantifier
: = literal
...* = dois caracteres seguido de 0 até N caracteres

\1 = ponteiro para grupo criado na pesquisa.
* = * na parte de substituição é tratado como um asterisco literal

ta = é como um "go to label 'a'."

Embolado? ^_^"

Em qui., 28 de nov. de 2019 às 13:48, Raul Libório address@hidden <mailto:address@hidden> [shell-script] <address@hidden <mailto:address@hidden>> escreveu:

    __

    Hahaha, também gostaria de uma explicação pra aquela bruxaria.

    Em qui., 28 de nov. de 2019 às 13:20, Jamenson Ferreira Espindula de 
Almeida Melo address@hidden
    <mailto:address@hidden> [shell-script] <address@hidden
    <mailto:address@hidden>> escreveu:

        __

        Em qui., 28 de nov. de 2019 às 09:33, 'Julio C. Neves'
        address@hidden <mailto:address@hidden> [shell-script] <address@hidden
        <mailto:address@hidden>>
        escreveu:
         >
         >
         >
         > Aê Raul, é isso?
         >
         > $ var=$(sed -r 's/^(.*:..)(.*)$/\1\t\2/' arq) && paste -d "" <(cut -f1 <<< 
"$var") <(tr
        '[[:alnum:][:punct:]]' \* <<< "$(cut -f2 <<< "$var")")
         > address@hidden:mi********
         > address@hidden:mi**************
         > address@hidden:mi****************
         > address@hidden:xa**************
         > address@hidden:mi****************
         >
         > Abraços,
         > Julio
         >
         > » Não tem tempo para fazer um curso presencial?
         > » Na sua cidade não tem nenhum bom curso de Linux?
         > » Em outubro abriremos uma semana de inscrições
         > » para uma nova turma. Veja mais detalhes em:
         > » https://educacao.dicas-l.com.br/shell-linux
         >
         > Também damos treinamento em sua empresa
         > em qualquer cidade, com certificado e nota fiscal.
         >
         >
         >
         >
         >
         >
         >
         > Em qui., 28 de nov. de 2019 às 00:34, Raul Libório address@hidden 
<mailto:address@hidden>
        [shell-script] <address@hidden <mailto:address@hidden>> escreveu:
         >>
         >>
         >>
         >> Corrigindo, o padrão que procuro é:
         >>
         >> email + dois pontos ( : ) + dois primeiros caracteres da senha + o
         >> resto dos caracteres substituídos por asterisco.
         >>
         >> Ficou implicito nos exemplos, mas melhor detalhar :)
         >>
         >> Em qui., 28 de nov. de 2019 às 00:37, Raul Libório
         >> <address@hidden <mailto:address@hidden>> escreveu:
         >> >
         >> > Amigos, confesso que já exauri minhas tentativas :)
         >> >
         >> > Tenho um arquivo.txt com o seguinte texto: (exemplo)
         >> > address@hidden:minhaSenha
         >> > address@hidden:minhaSen21hadasa
         >> > address@hidden:minheweqwaSenhddaa
         >> > address@hidden:xadaeeminhaSenha
         >> > address@hidden:minhd231231aSe1nha
         >> >
         >> > O que preciso?
         >> > Que a saída seja:
         >> > email + dois pontos ( : ) + dois primeiros caracteres da senha. 
Algo assim:
         >> >
         >> > address@hidden:mi********
         >> > nhaSenha = 8 caracteres, 8 asteriscos
         >> >
         >> > Tentei por exemplo, sed -r 's/:(..)+/\:\1*****/g' pass.txt
         >> > porém aqui eu estou definindo a quantidade de asteriscos que serão
         >> > impressos. O que não é procuro.
         >> >
         >> > Tentei salvar os valores depois do padrão em um segundo grupo, e
         >> > depois substituir os valores desse segundo grupo pelos 
asteriscos, mas
         >> > não consegui fazer isso. =\
         >> >
         >> >
         >> >
         >> >
         >> > --
         >> > Raul Libório
         >> > http://rauhmaru.blogspot.com/
         >> > openSUSE Member | Linux User #4444581
         >> >
         >> > /etc/httpd/conf.d/ssl.conf:7
         >> > # Do NOT simply read the instructions in here without 
understanding
         >> > # what they do. They're here only as hints or reminders. If you 
are unsure
         >> > # consult the online docs. You have been warned.
         >>
         >> --
         >> Raul Libório
         >> http://rauhmaru..blogspot.com/ <http://blogspot.com/>
         >> openSUSE Member | Linux User #4444581
         >>
         >> /etc/httpd/conf.d/ssl.conf:7
         >> # Do NOT simply read the instructions in here without understanding
         >> # what they do. They're here only as hints or reminders. If you are 
unsure
         >> # consult the online docs. You have been warned.
         >
         >

        Agora, alguém, por favor, explique (para os leigos e pobres mortais,
        como eu), em detalhes, cada pedaço da solução.

        Muito grato.

        Jamenson Ferreira Espindula de Almeida Melo
        Jaboatão dos Guararapes, Pernambuco, Brasil
        Usuário GNU/Linux nº 166197
        https://linuxcounter.net/cert/166197.png

        Impressão digital da chave:
        234D 1914 4224 7C53 BD13 6855 2AE0 25C0 08A8 6180



-- Raul Libório
    http://rauhmaru.blogspot.com/
    openSUSE Member | Linux User #4444581

    /etc/httpd/conf.d/ssl.conf:7
    # Do NOT simply read the instructions in here without understanding
    # what they do.  They're here only as hints or reminders.  If you are unsure
    # consult the online docs. You have been warned.


--------------------------------------------------------------------------------------------------------------
Enviado por: Rodrigo Tenorio <address@hidden>
--------------------------------------------------------------------------------------------------------------


reply via email to

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