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 $
address@hidden
-fn $i -display \"$(echo $i | sed -r
's/(.)/\U\1/')\" -desc \"Recursos Humanos\"
-pwd \"Teste@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 address@hidden
-fn bruno -display "Bruno" -desc "Recursos
Humanos" -pwd "Teste@123" -mustchpwd yes
-disable no
dsadd user cn=luana,ou=RH,dc=vivaopinguim
-samid luana -upn address@hidden
-fn luana -display "Luana" -desc "Recursos
Humanos" -pwd "Teste@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 $address@hidden
-fn $i -display \"$i $a\" -desc \"Recursos
Humanos\" -pwd \"Teste@123\" -mustchpwd yes
-disable no"
done
done
###########################################################################################################################
Resultado:
dsadd user cn=bruno
20653,ou=RH,dc=vivaopinguim -samid bruno
-upn address@hidden
-fn bruno -display "bruno silva" -desc
"Recursos Humanos" -pwd "Teste@123"
-mustchpwd yes -disable no
dsadd user cn=bruno
20653,ou=RH,dc=vivaopinguim -samid bruno
-upn address@hidden
-fn bruno -display "bruno dias" -desc
"Recursos Humanos" -pwd "Teste@123"
-mustchpwd yes -disable no
dsadd user cn=luana
20653,ou=RH,dc=vivaopinguim -samid luana
-upn address@hidden
-fn luana -display "luana silva" -desc
"Recursos Humanos" -pwd "Teste@123"
-mustchpwd yes -disable no
dsadd user cn=luana
20653,ou=RH,dc=vivaopinguim -samid luana
-upn address@hidden
-fn luana -display "luana dias" -desc
"Recursos Humanos" -pwd "Teste@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 address@hidden
-fn bruno -display "bruno silva" -desc
"Recursos Humanos" -pwd "Teste@123"
-mustchpwd yes -disable no
dsadd user cn=luana
20653,ou=RH,dc=vivaopinguim -samid luana
-upn address@hidden
-fn luana -display "luana dias" -desc
"Recursos Humanos" -pwd "Teste@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.