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: Robson Alexandre
Subject: Re: [shell-script] Gerar arquivo
Date: Wed, 14 Sep 2016 03:52:16 +0000

Rodrigo,

Troca o $1 pelo caminho do arquivo de entrada, no caso o GrupoTeste.

Vc não pode tirar o $1 pois o while vai ficar esperando algo de stdin.

Atenciosamente
Robson Alexandre


Em Ter, 13 de set de 2016 22:50, Rodrigo Cunha address@hidden [shell-script] <address@hidden> escreveu:
 

Deu certo para todo mundo a implementação do script?

Em 13 de setembro de 2016 14:02, Rodrigo Cunha <address@hidden>
escreveu:



>
> ​
>
> 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
>
>

--
Atenciosamente,
Rodrigo da Silva Cunha

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

--
Atenciosamente

Robson Alexandre

reply via email to

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