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: Janduy Euclides
Subject: Re: [shell-script] Gerar arquivo
Date: Tue, 13 Sep 2016 10:08:03 -0300

Grande Julio, sempre com surpreendentes soluções.

Parabens.

Sou seu FAN e espero poder aprender muito com voce.

Abs,




Atenciosamente,




Em 13 de setembro de 2016 09:12, 'Julio C. Neves' address@hidden [shell-script] <address@hidden> escreveu:
 

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

P
róximos cursos de Shell
Cidade         Local Período
São Paulo 4Linux 05
-09/12
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 12 de setembro de 2016 12:43, Alfredo Casanova address@hidden [shell-script] <address@hidden.br> 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.br> 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.br> 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 rodrigo.boechat.tenorio@gmail.com [shell-script] <address@hidden.br> 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/software/gawk/manual/gawk.html

:)


Em 12 de setembro de 2016 10:03, Gilberto Nunes address@hidden [shell-script] <address@hidden.br> 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




reply via email to

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