shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR


From: brunodiasinfo
Subject: Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR
Date: 01 Sep 2018 14:33:12 +0000

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.



reply via email to

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