|
From: | Julio C. Neves |
Subject: | Re: [shell-script] Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR |
Date: | Sat, 1 Sep 2018 12:09:50 -0300 |
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.
[Prev in Thread] Current Thread [Next in Thread]
- Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR, brunodiasinfo, 2018/09/01
- Re: [shell-script] Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR, Julio C. Neves <=
- Re: [shell-script] Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR, T.Collons, 2018/09/01
- Re: [shell-script] Script para Pegar nomes num arqui vo TXT e formatar a saída usando FOR, itamarnet, 2018/09/02
- Re: Script para Pegar nomes num arquiv o TXT e formatar a saída usando FOR, brunodiasinfo, 2018/09/02
- Re: [shell-script] Re: Script para Pegar nomes num arquiv o TXT e formatar a saída usando FOR, Julio C. Neves, 2018/09/05
- Re: [shell-script] Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR, T.Collons, 2018/09/02
- Re: [shell-script] Script para Pegar nomes num arquivo TX T e formatar a saída usando FOR, itamarnet, 2018/09/02
- Re: [shell-script] Script para Pegar nomes num arquivo TX T e formatar a saída usando FOR, T.Collons, 2018/09/02
- Prev by Date: Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR
- Next by Date: Re: [shell-script] Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR
- Previous by thread: Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR
- Next by thread: Re: [shell-script] Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR
- Index(es):