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

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

Re: [shell-script] Gerar arquivo


From: Rodrigo Cunha
Subject: Re: [shell-script] Gerar arquivo
Date: Tue, 13 Sep 2016 14:02:07 -0300

​

Em 13 de setembro de 2016 13:21, Gilberto Nunes address@hidden
[shell-script] <address@hidden> escreveu:

>
>
> Obrigado a todos pela dica.
> A que mais me serviu foi mesmo a do Casanova!
> Te devo essa! Obrigado
>
> Em 13 de setembro de 2016 12:10, Alfredo Casanova address@hidden
> [shell-script] <address@hidden> escreveu:
>
>>
>>
>> o $1 é argv. Você tem que chamar o script passando o arquivo como
>> parâmetro:
>>
>> $ cat GrupoTeste
>> usuario.teste
>> usuario2.teste2
>> usuario3.teste3
>> usuario4.teste4
>> usuario5.teste5
>>
>> e depois:
>>
>> $ ./grupo GrupoTeste
>>
>>
>> On Tue, Sep 13, 2016 at 12:05 PM Rodrigo Cunha address@hidden
>> [shell-script] <address@hidden> wrote:
>>
>>>
>>>
>>> Esse script do casanova ta dando output de ambiguidade:
>>> done < $1
>>> $ linha 11: $1: redirecionamento ambíguo
>>> Quando eu tiro o $1 ele não para de processar, sinceramente não entendi
>>> o $1 depois do done com redirecionamento.
>>>
>>>
>>> Em 13 de setembro de 2016 10:25, Alfredo Casanova address@hidden
>>> [shell-script] <address@hidden> escreveu:
>>>
>>>>
>>>>
>>>> Sem tempo pra participar muito, mas sempre lendo pra aprender esses
>>>> macetes.
>>>> Não importa o quanto a gente ache que saiba, o Julio sempre vem com
>>>> alguma coisa que vai facilitar mais ainda o trabalho hahaha
>>>>
>>>>
>>>> On Tue, Sep 13, 2016 at 9:12 AM 'Julio C. Neves' address@hidden
>>>> [shell-script] <address@hidden> wrote:
>>>>
>>>>>
>>>>>
>>>>> Fala Casanova, andas meio sumido, heim!
>>>>>
>>>>> Olha só, dá para diminuir um pouquinho e estou metendo a minha colher
>>>>> de pau na tua receita, pq esse macete não é muito conhecido. As linhas:
>>>>>
>>>>> while read line; do
>>>>> IFS=. read name lastname <<< $line;
>>>>>
>>>>> Podem ser substituídas por:
>>>>>
>>>>> while IFS=. read name lastname; do
>>>>>
>>>>> Dispensando dessa forma um here strings e a criação/alimentação de
>>>>> $line
>>>>>
>>>>> Acho esse macete de trocar o valor de uma variável para executar
>>>>> somente uma instrução, o maior barato. O novo valor da variável (no caso
>>>>> $IFS) perdurará somente durante a execução do read. Veja esse outro 
>>>>> exemplo:
>>>>>
>>>>> $ date
>>>>> Ter Set 13 09:01:54 BRT 2016
>>>>> $ LANG=en_EN date
>>>>> Tue Sep 13 09:02:10 BRT 2016
>>>>> $ date
>>>>> Ter Set 13 09:02:15 BRT 2016
>>>>>
>>>>> Ou seja meu cmd date veio em pt_BR, troquei o idioma para inglês
>>>>> (britânico - en_EN) só para executar o novo date e logo após vimos que o
>>>>> date continuava em pt_BR.
>>>>>
>>>>> Abcs,
>>>>> Julio
>>>>> *@juliobash*
>>>>>
>>>>> *Próximos cursos de Shell*
>>>>> *Cidade         Local Período*
>>>>> *​*
>>>>> *São Paulo 4Linux
>>>>> <https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
>>>>> Dou treinamento de *Shell* em qualquer cidade.
>>>>> Para mais detalhes, me mande um e-mail <address@hidden>.
>>>>>
>>>>>
>>>>> Em 12 de setembro de 2016 12:43, Alfredo Casanova address@hidden
>>>>> [shell-script] <address@hidden> escreveu:
>>>>>
>>>>>
>>>>>>
>>>>>> corrigindo, faltou um cifrão
>>>>>> cat grupo
>>>>>> #!/bin/bash
>>>>>> while read line; do
>>>>>> IFS=. read name lastname <<< $line;
>>>>>> echo "1- Username: $line
>>>>>> 2- givenname: ${name^}
>>>>>> 3- surname: ${lastname^}
>>>>>> 4- OU: ${1/Grupo/}
>>>>>> 5- Group: $1
>>>>>> 6- Password: ${name}@$lastname
>>>>>> "
>>>>>> done < $1
>>>>>>
>>>>>> ./grupo GrupoTeste
>>>>>> 1- Username: usuario.teste
>>>>>> 2- givenname: Usuario
>>>>>> 3- surname: Teste
>>>>>> 4- OU: Teste
>>>>>> 5- Group: GrupoTeste
>>>>>> 6- Password: usuario@teste
>>>>>>
>>>>>> 1- Username: usuario2.teste2
>>>>>> 2- givenname: Usuario2
>>>>>> 3- surname: Teste2
>>>>>> 4- OU: Teste
>>>>>> 5- Group: GrupoTeste
>>>>>> 6- Password: usuario2@teste2
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Sep 12, 2016 at 12:42 PM Alfredo Casanova <
>>>>>> address@hidden> wrote:
>>>>>>
>>>>>>> $ cat grupo
>>>>>>> #!/bin/bash
>>>>>>> while read line; do
>>>>>>> IFS=. read name lastname <<< $line;
>>>>>>> echo "1- Username: $line
>>>>>>> 2- givenname: ${name^}
>>>>>>> 3- surname: ${lastname^}
>>>>>>> 4- OU: ${1/Grupo/}
>>>>>>> 5- Group: $1
>>>>>>> 6- Password: ${name}@lastname
>>>>>>> "
>>>>>>> done < $1
>>>>>>>
>>>>>>> $ cat GrupoTeste
>>>>>>> usuario.teste
>>>>>>> usuario2.teste2
>>>>>>>
>>>>>>> $ chmod +x grupo
>>>>>>> $ ./grupo GrupoTeste
>>>>>>> ./grupo GrupoTeste
>>>>>>> 1- Username: usuario.teste
>>>>>>> 2- givenname: Usuario
>>>>>>> 3- surname: Teste
>>>>>>> 4- OU: Teste
>>>>>>> 5- Group: GrupoTeste
>>>>>>> 6- Password: usuario@lastname
>>>>>>>
>>>>>>> 1- Username: usuario2.teste2
>>>>>>> 2- givenname: Usuario2
>>>>>>> 3- surname: Teste2
>>>>>>> 4- OU: Teste
>>>>>>> 5- Group: GrupoTeste
>>>>>>> 6- Password: usuario2@lastname
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Sep 12, 2016 at 11:08 AM Robson Alexandre
>>>>>>> address@hidden [shell-script] <
>>>>>>> address@hidden> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Olá Gilberto,
>>>>>>>>
>>>>>>>> Outro detalhe q vc talvez tenha esquecido de informar é de onde vc
>>>>>>>> vai buscar as informações de 2 a 6?
>>>>>>>>
>>>>>>>> 1 - username = usuario.teste
>>>>>>>> 2 - givenname = Usuario
>>>>>>>> 3 - surname = Teste
>>>>>>>> 4 - ou = Teste
>>>>>>>> 5 - group = GrupoTeste
>>>>>>>> 6 = password = usuario@teste
>>>>>>>>
>>>>>>>> Seria do próprio arquivo? Seria do sistema? Seria de alguma outra
>>>>>>>> fonte de informação?
>>>>>>>>
>>>>>>>> É interessante q se tenha um modelo de entrada do arquivo e o
>>>>>>>> modelo de saída desejado.
>>>>>>>> Como o Rodrigo já escreveu o AWK nesses casos tem melhor
>>>>>>>> performance de execução e resultados. Mas às vezes um simples while com
>>>>>>>> read já resolve tudo.
>>>>>>>>
>>>>>>>> Atenciosamente
>>>>>>>> Robson Alexandre
>>>>>>>>
>>>>>>>>
>>>>>>>> Em Seg, 12 de set de 2016 10:41, Gilberto Nunes
>>>>>>>> address@hidden [shell-script] <
>>>>>>>> address@hidden> escreveu:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Opa...
>>>>>>>>>
>>>>>>>>> Olá Rodrigo...
>>>>>>>>>
>>>>>>>>> Já estou indo nessa direção de desenvolver algo aqui.
>>>>>>>>> Estou pensando em usar laço for, cat e sed pra fazer isso...
>>>>>>>>>
>>>>>>>>> Mas obrigado pelo seu retorno...
>>>>>>>>> Quando conseguir algo ou tiver alguma duvida, entro em contato.
>>>>>>>>>
>>>>>>>>> Obrigado
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Em 12 de setembro de 2016 10:30, Rodrigo Tenorio
>>>>>>>>> address@hidden [shell-script] <
>>>>>>>>> address@hidden> escreveu:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Desculpaê, mas não sou mágico, nem mesmo tenho bola de cristal...
>>>>>>>>>>
>>>>>>>>>> Pesquise sobre sed, ou substring, ou awk no google.
>>>>>>>>>> Ao menos tente desenvolver algo com seu próprio esforço e depois
>>>>>>>>>> peça esclarecimentos sobre sua dúvida com um pedido de ajuda melhor
>>>>>>>>>> formulado.
>>>>>>>>>>
>>>>>>>>>> Um caminho de pedra... https://www.gnu.org/s
>>>>>>>>>> oftware/gawk/manual/gawk.html
>>>>>>>>>>
>>>>>>>>>> :)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Em 12 de setembro de 2016 10:03, Gilberto Nunes
>>>>>>>>>> address@hidden [shell-script] <
>>>>>>>>>> address@hidden> escreveu:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Olá amigos...
>>>>>>>>>>>
>>>>>>>>>>> Eu preciso gerar a seguinte informação:
>>>>>>>>>>>
>>>>>>>>>>> Exemplo:
>>>>>>>>>>>
>>>>>>>>>>> Tenho arquivos chamado GrupoTeste
>>>>>>>>>>>
>>>>>>>>>>> Dentro deste arquivo está:
>>>>>>>>>>> usuario.teste
>>>>>>>>>>>
>>>>>>>>>>> Além de vários outros.
>>>>>>>>>>>
>>>>>>>>>>> Preciso usar sed, cat ou seja lá que mágica for, para gerar um
>>>>>>>>>>> saída com 6 parametros:
>>>>>>>>>>>
>>>>>>>>>>> 1 - username = usuario.teste
>>>>>>>>>>> 2 - givenname = Usuario
>>>>>>>>>>> 3 - surname = Teste
>>>>>>>>>>> 4 - ou = Teste
>>>>>>>>>>> 5 - group = GrupoTeste
>>>>>>>>>>> 6 = password = usuario@teste
>>>>>>>>>>>
>>>>>>>>>>> Alguém pode me ajudar???
>>>>>>>>>>>
>>>>>>>>>>> Agradeço muitíssimo!
>>>>>>>>>>>
>>>>>>>>>>> Obrigado
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>>
>>>>>>>>>>> Gilberto Ferreira
>>>>>>>>>>> +55 (47) 9676-7530
>>>>>>>>>>> Skype: gilberto.nunes36
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>>> Gilberto Ferreira
>>>>>>>>> +55 (47) 9676-7530
>>>>>>>>> Skype: gilberto.nunes36
>>>>>>>>>
>>>>>>>>> --
>>>>>>>> Atenciosamente
>>>>>>>>
>>>>>>>> Robson Alexandre
>>>>>>>>
>>>>>>>>
>>>>>
>>>
>>>
>>> --
>>> Atenciosamente,
>>> Rodrigo da Silva Cunha
>>>
>>>
>
>
> --
>
> Gilberto Ferreira
> +55 (47) 9676-7530
> Skype: gilberto.nunes36
>
> 
>



-- 
Atenciosamente,
Rodrigo da Silva Cunha


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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