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

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

Re: [shell-script] Script para Pegar nomes num arquivo TXT e formatar a


From: T.Collons
Subject: Re: [shell-script] Script para Pegar nomes num arquivo TXT e formatar a saída usando FOR
Date: Sun, 2 Sep 2018 01:04:06 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

Hola a todos

Completando lo que el gran maestro Julio te respondió Bruno, prueba esta modificación a su código, a ver si es lo que realmente necesitas.

while read i Resto; do echo "dsadd user cn=$i,ou=RH,dc=vivaopinguim -samid $i -upn $address@hidden -fn $i -display $i" "${Resto} -desc \"Recursos Humanos\" -pwd \"Teste@123\" -mustchpwd yes -disable no"; done < pessoa.txt


El 01/09/18 a les 17:09, 'Julio C. Neves' address@hidden [shell-script] ha escrit:
 
Isso aqui deve funcionar e o sed e awk foram substituídos por shell puro:

while read Nome1 Resto # $Nome1 recebo o 1o. nome e $Resto os outros se houverem
do
    echo "dsadd user cn=$i,ou=RH,dc=vivaopinguim -samid $i -upn $address@hidden -fn $i -display ${Nome1^} -desc \"Recursos Humanos\" -pwd \"Teste@123\" -mustchpwd yes -disable no"
done < pessoa.txt

PS: O workshop de Shell das dicas-l começa hoje e é gratuito! Inscrições em http://www.dicas-l.com.br/educacao/workshop/

Abraços,
Julio

» Não tem tempo para fazer um curso presencial?
» Na sua cidade não tem nenhum bom curso de Linux?
» Conheça nosso portal educacional e estude conosco: 
»  Treinamento presencial (em 4 sábados) no RJ e BSB 
    em http://bit.ly/cursoshelljulioneves                   



Também damos treinamento em sua empresa
em qualquer cidadecom certificado e nota fiscal.



Em sáb, 1 de set de 2018 às 11:33, address@hidden [shell-script] <address@hidden> escreveu:
 

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.



--



Pere

address@hidden




------------------------------------

AVIS LEGAL

Nota de confidencialitat: Aquest missatge podria contenir missatges d'empresa i altre informació confidencial tutelada per les lleis de Europea i altres estats, Si Vostè el rep per error o sense ser una de les persones esmenades a la capçalera, haurà de destruir-lo sense copiar-lo ni revelar-l'ho o qualsevol altre acció relacionada amb el contingut del missatge i notificar-ho per correu electrònic a l'emissor del missatge.

Les persones o entitats que incompleixin els deures de confidencialitat podran ésser perseguides davant dels Tribunals de Justícia sota l'empar de la legislació civil, penal i administrativa nacional i internacional.  

Gracies per la seva cooperació.

------------------------------------

LEGAL NOTICE

Confidentiality notice: This mail may include business and other confidential information protected under the laws of and other territories. if you are not one of the intended recipients of the message, you are legally obliged to delete the message content. Furthermore, you are kindly requested to report immediately the incident to the sender.

Breach of confidentiality duties is a serious criminal offence in and other territories. Offenders shall be legally prosecuted worldwide. 

Thank you for your cooperation.




reply via email to

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