Validar e-mails em arquivo CSV

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

[ Hits: 2.121 ]

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

runit-fstab-generator

Automatizar backup do PostgreSQL

Script para instalar o vsftpd

Compilar no Slackware

Relatório de suprimentos da empresa


  

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