Pular para o conteúdo

Shell Script nosso de cada - Episódio 2

Dica publicada em Shell Script / Introdução
Wagner Souza wagnerfs
Hits: 3.749 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Shell Script nosso de cada - Episódio 2

A missão de hoje é utilizar uma lista de nomes armazenadas em um arquivo de texto e gerar um novo arquivo com as contas de e-mails para cada usuário. E agora? Parece que o negócio está esquentando ainda mais!

O arquivo possui as seguintes informações:

MARIO FERREIRA DE SOUZA
AMANDA PEIXOTO DE SOUZA
MONICA DA SILVA CHAVIER
PEDRO DE PAULA FILHO

Sabemos que contas de e-mail não podem ser com letras maiúsculas. Agora vem o primeiro desafio que será vencido com o comando tr:

tr A-Z a-z < colaboradores.txt > newcolaboradores.txt ; mv newcolaboradores.txt colaboradores.txt

Todo o conteúdo do arquivo colaboradores.txt foi colocado em letras minúsculas e em seguida peguei o resultado obtido e joguei para outro arquivo de texto para depois renomear para o seu nome original. Calma que estamos apenas começado! :)

A próxima tarefa vai ser eliminar as palavrinhas "de" e "da" que ficam entre os nomes e sobrenomes. O sed é o cara responsável nessa empreitada:

sed -i 's/ de / /g ; s/ da / /g' colaboradores.txt

Resultado:

mario ferreira souza
amanda peixoto souza
monica silva chavier
pedro paula filho


Very good! Agora é só decidir qual vai ser o padrão para a criação das contas de e-mail. Vou fazer o seguinte: pegar o nome e sobrenome separado por um ponto. Exemplo: fulano.tal@corp.com.

Vou extrair do texto o nome e sobrenome e por um ponto separando-os:

cat colaboradores.txt | cut -d' ' -f1,2 | tr ' ' '.' > newcolaboradores.txt ; mv newcolaboradores.txt colaboradores.txt

Resultado:

mario.ferreira
amanda.peixoto
monica.silva
pedro.paula


Olha aí! Lindo, não?! O último passo agora é acrescentar o domínio do e-mail que vai ser @corp.com.

for i in $(cat colaboradores.txt | cut -d'.' -f1,2); do echo "$i@corp.com" >> newcolaboradores.txt; done ; mv newcolaboradores.txt colaboradores.txt

Resultado:

mario.ferreira@gmail.com
amanda.peixoto@gmail.com
monica.silva@gmail.com
pedro.paula@gmail.com


Caso você ainda queira melhorar o arquivo, pode ordenar as contas em ordem alfabética:

sort colaboradores.txt -o colaboradores.txt

Até o próximo episódio!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Exercício Prático LPIC 01

Shell Script nosso de cada dia - Episódio 4

Exercício Prático LPIC 02

Servidor Proxy para uso do APT e ZYPPER - Configuração

Exercício Prático LPIC 12

Exercício Prático LPIC 06

Multitail - Monitore vários logs em tempo real

Algoritmo para converter minutos em hora

Backup da pasta de usuário sem copiar os arquivos ocultos

Dica para automatizar suas tarefas diárias [Iniciante]

#1 Comentário enviado por wagnerfs em 16/07/2015 - 02:33h
Só uma correção:

Na parte que o resultado é exibido com as contas de e-mail já pronta, no lugar de gmail.com era para estar corp.com. Isso ocorreu pelo fato de eu ter copiado de um outro arquivo de texto que estava usando para elaborar essas dica.

Podem testar do jeito que foi passado que vai dar certo.
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782

Contribuir com comentário

Entre na sua conta para comentar.