brunodiasinfo@yahoo.com [shell-script]
2018-09-01 14:33:12 UTC
Prezados bom dia,
Antes de começar, se colar esse conteúdo num TXT ficará melhor para ler ele.
Estou tentando formatar um txt com nomes e sobrenomes (somente para iniciar), eu tenho que pegar esses nomes e sobrenomes e coloca-los de uma forma, que irá gerar um script, para rodar num
server Windows e criar os usuários, são cerca de 200 usuário, no teste deixei apenas 2 para facilitar.
Eu fiz de duas formas, a primeira usando apenas um FOR, mas sem sobrenome, o que é ruim caso eu queira adicionar sobrenome, telefone, idade e por ai vai:
OBs.: Arquivo "pessoa.txt" tem 2 nomes, bruno silva e luana dias.
###########################################################################################################################
#!/bin/bash
# Pega o primeiro campo do arquivo pessoas (vai pegar o primeiro nome das pessoas)
nome="$(awk '{ print $1 }' pessoas.txt)"
# Usando FOR para pegar cada nome e colocar onde é $i
for i in $nome
do
echo "dsadd user cn=$i,ou=RH,dc=vivaopinguim -samid $i -upn $***@vivaopinguim.com -fn $i -display \"$(echo $i | sed -r 's/(.)/\U\1/')\" -desc \"Recursos Humanos\" -pwd \"***@123\" -mustchpwd yes -disable no"
done
###########################################################################################################################
# A expressão abaixo vai deixar a primeira letra em Maiúscula colocando entre aspas no comando echo:
\"$(echo $i | sed -r 's/(.)/\U\1/')\"
___________________________________________________________________________________________________________________________
Resultado:
dsadd user cn=bruno,ou=RH,dc=vivaopinguim -samid bruno -upn ***@vivaopinguim.com -fn bruno -display "Bruno" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
dsadd user cn=luana,ou=RH,dc=vivaopinguim -samid luana -upn ***@vivaopinguim.com -fn luana -display "Luana" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
Esse funciona bem, porém, caso eu precise adicionar mais dados, como informei acima, não vou conseguir.
___________________________________________________________________________________________________________________________
Segunda forma tentei usar um FOR encadeado.
###########################################################################################################################
#!/bin/bash
# Pega o primeiro campo do arquivo pessoas (vai pegar o primeiro nome das pessoas)
nome="$(awk '{ print $1 }' pessoas.txt)"
# Pega o segundo nome das pessoas, seria um sobrenome no caso, estou dando REV para pegar o ultimo nome pego o nome e depois dou um REV para voltar ao normal
sobrenome="$(rev pessoas.txt | awk '{ print $1 }' | rev)";
for i in $nome
do
for a in $sobrenome
do
echo "dsadd user cn=$i 20653,ou=RH,dc=vivaopinguim -samid $i -upn $***@vivaopinguim.om -fn $i -display \"$i $a\" -desc \"Recursos Humanos\" -pwd \"***@123\" -mustchpwd yes -disable no"
done
done
###########################################################################################################################
Resultado:
dsadd user cn=bruno 20653,ou=RH,dc=vivaopinguim -samid bruno -upn ***@vivaopinguim.om -fn bruno -display "bruno silva" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
dsadd user cn=bruno 20653,ou=RH,dc=vivaopinguim -samid bruno -upn ***@vivaopinguim.om -fn bruno -display "bruno dias" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
dsadd user cn=luana 20653,ou=RH,dc=vivaopinguim -samid luana -upn ***@vivaopinguim.om -fn luana -display "luana silva" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
dsadd user cn=luana 20653,ou=RH,dc=vivaopinguim -samid luana -upn ***@vivaopinguim.om -fn luana -display "luana dias" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
Ele mescla os sobrenomes.
___________________________________________________________________________________________________________________________
Como eu gostaria que ficasse:
dsadd user cn=bruno 20653,ou=RH,dc=vivaopinguim -samid bruno -upn ***@vivaopinguim.om -fn bruno -display "bruno silva" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
dsadd user cn=luana 20653,ou=RH,dc=vivaopinguim -samid luana -upn ***@vivaopinguim.om -fn luana -display "luana dias" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
Teriam alguma dica para me ajudar, lembrando que tem telefones, ramal e muitas outras opções, desde já, muito obrigado pela sua ajuda.
Antes de começar, se colar esse conteúdo num TXT ficará melhor para ler ele.
Estou tentando formatar um txt com nomes e sobrenomes (somente para iniciar), eu tenho que pegar esses nomes e sobrenomes e coloca-los de uma forma, que irá gerar um script, para rodar num
server Windows e criar os usuários, são cerca de 200 usuário, no teste deixei apenas 2 para facilitar.
Eu fiz de duas formas, a primeira usando apenas um FOR, mas sem sobrenome, o que é ruim caso eu queira adicionar sobrenome, telefone, idade e por ai vai:
OBs.: Arquivo "pessoa.txt" tem 2 nomes, bruno silva e luana dias.
###########################################################################################################################
#!/bin/bash
# Pega o primeiro campo do arquivo pessoas (vai pegar o primeiro nome das pessoas)
nome="$(awk '{ print $1 }' pessoas.txt)"
# Usando FOR para pegar cada nome e colocar onde é $i
for i in $nome
do
echo "dsadd user cn=$i,ou=RH,dc=vivaopinguim -samid $i -upn $***@vivaopinguim.com -fn $i -display \"$(echo $i | sed -r 's/(.)/\U\1/')\" -desc \"Recursos Humanos\" -pwd \"***@123\" -mustchpwd yes -disable no"
done
###########################################################################################################################
# A expressão abaixo vai deixar a primeira letra em Maiúscula colocando entre aspas no comando echo:
\"$(echo $i | sed -r 's/(.)/\U\1/')\"
___________________________________________________________________________________________________________________________
Resultado:
dsadd user cn=bruno,ou=RH,dc=vivaopinguim -samid bruno -upn ***@vivaopinguim.com -fn bruno -display "Bruno" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
dsadd user cn=luana,ou=RH,dc=vivaopinguim -samid luana -upn ***@vivaopinguim.com -fn luana -display "Luana" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
Esse funciona bem, porém, caso eu precise adicionar mais dados, como informei acima, não vou conseguir.
___________________________________________________________________________________________________________________________
Segunda forma tentei usar um FOR encadeado.
###########################################################################################################################
#!/bin/bash
# Pega o primeiro campo do arquivo pessoas (vai pegar o primeiro nome das pessoas)
nome="$(awk '{ print $1 }' pessoas.txt)"
# Pega o segundo nome das pessoas, seria um sobrenome no caso, estou dando REV para pegar o ultimo nome pego o nome e depois dou um REV para voltar ao normal
sobrenome="$(rev pessoas.txt | awk '{ print $1 }' | rev)";
for i in $nome
do
for a in $sobrenome
do
echo "dsadd user cn=$i 20653,ou=RH,dc=vivaopinguim -samid $i -upn $***@vivaopinguim.om -fn $i -display \"$i $a\" -desc \"Recursos Humanos\" -pwd \"***@123\" -mustchpwd yes -disable no"
done
done
###########################################################################################################################
Resultado:
dsadd user cn=bruno 20653,ou=RH,dc=vivaopinguim -samid bruno -upn ***@vivaopinguim.om -fn bruno -display "bruno silva" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
dsadd user cn=bruno 20653,ou=RH,dc=vivaopinguim -samid bruno -upn ***@vivaopinguim.om -fn bruno -display "bruno dias" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
dsadd user cn=luana 20653,ou=RH,dc=vivaopinguim -samid luana -upn ***@vivaopinguim.om -fn luana -display "luana silva" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
dsadd user cn=luana 20653,ou=RH,dc=vivaopinguim -samid luana -upn ***@vivaopinguim.om -fn luana -display "luana dias" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
Ele mescla os sobrenomes.
___________________________________________________________________________________________________________________________
Como eu gostaria que ficasse:
dsadd user cn=bruno 20653,ou=RH,dc=vivaopinguim -samid bruno -upn ***@vivaopinguim.om -fn bruno -display "bruno silva" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
dsadd user cn=luana 20653,ou=RH,dc=vivaopinguim -samid luana -upn ***@vivaopinguim.om -fn luana -display "luana dias" -desc "Recursos Humanos" -pwd "***@123" -mustchpwd yes -disable no
Teriam alguma dica para me ajudar, lembrando que tem telefones, ramal e muitas outras opções, desde já, muito obrigado pela sua ajuda.