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.
Post by Alfredo Casanova ***@gmail.com [shell-script]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
"
done < $1
./grupo GrupoTeste
1- Username: usuario.teste
2- givenname: Usuario
3- surname: Teste
4- OU: Teste
5- Group: GrupoTeste
1- Username: usuario2.teste2
2- givenname: Usuario2
3- surname: Teste2
4- OU: Teste
5- Group: GrupoTeste
Post by Alfredo Casanova ***@gmail.com [shell-script]$ 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
"
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
1- Username: usuario2.teste2
2- givenname: Usuario2
3- surname: Teste2
4- OU: Teste
5- Group: GrupoTeste
On Mon, Sep 12, 2016 at 11:08 AM Robson Alexandre
Post by Robson Alexandre ***@gmail.com [shell-script]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
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
Post by Gilberto Nunes ***@gmail.com [shell-script]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
Post by Rodrigo Tenorio ***@gmail.com [shell-script]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
Post by Gilberto Nunes ***@gmail.com [shell-script]Olá amigos...
Tenho arquivos chamado GrupoTeste
usuario.teste
Além de vários outros.
Preciso usar sed, cat ou seja lá que mágica for, para gerar um saÃda
1 - username = usuario.teste
2 - givenname = Usuario
3 - surname = Teste
4 - ou = Teste
5 - group = GrupoTeste
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