Validar e-mails em arquivo CSV

Publicado por Christian Martorano (última atualização em 04/07/2018)

[ Hits: 2.094 ]

Download validaMail.sh




Primeiramente, bom dia a todos os companheiros do maravilhoso mundo GNU/Linux.

Criei esse script para validar todos os e-mails que me são retornados por um arquivo "CSV" do CRM da empresa que trabalho.

Estou compartilhando ele para qualquer um que possa lhe ser útil.

Layout do arquivo:

NOME;EMAIL;CPF

Um grande abraço a todos da comunidade!

  



Esconder código-fonte

#!/bin/bash

#Layout do arquivo NOME;CPF;EMAIL

if [ "$1" == "" ]; then
  echo "[+] Nao foi passado arquivo de e-mails."
  exit
fi

rm emailsvalidos.txt 2>/dev/null
touch emailsvalidos.txt

regex="[a-z0-9_.%+-]+@[a-z0-9.-]+\.[a-z]{2,}"

echo "[+] Aguarde capturando e-mails validos."
echo -e "CLIENTE;CPF;EMAIL;DOMINIO\r" >> emailsvalidos.txt

qtdreg="$(($(wc -l "$1" | cut -d " " -f1)/40 | bc))"

for l in $(cat "$1" | tr " " "$" | tr "\n" " ");do
  let count++
  cliente="$(echo "$l" | cut -d ";" -f2 | tr "$" " ")"
  cpf="$(echo "$l" | cut -d ";" -f1)"
  email="$(echo "$l" | cut -d ";" -f3 | tr "[A-Z]" "[a-z]" | tr -d "\r")"
  dominio="$(echo "$email" | cut -d "@" -f2)"
  qtd="$(echo -n $email | tr "@" "\n" | wc -l)"
  if [[ "$email" =~ $regex ]] && [ "$qtd" -eq 1 ]; then
    echo -e "$cliente;$cpf;$email;$dominio\r" >> emailsvalidos.txt
  fi
  if [ "$count" -gt "$qtdreg" ]; then
    echo -n "#"
    let count=0
  fi
done

unix2dos emailsvalidos.txt 2>/dev/null

echo

Scripts recomendados

Removendo primeiras ou últimas linhas do arquivo

Parando o Screeensaver do Gnome durante uma reprodução no mplayer

Script de backup para MySQL - JonMyBackup

cron-rsync

Script de instalação do Mplayer, com todas as fontes e codecs - new release


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts