Ultima modifica:
Buonasera, viste l'esigenze di un utente sul gruppo Telegram che chiedeva uno script che gli dividesse un plaintext di tante email miste in tanti file testuali, spezzandola e creandone una per mail, ho scritto un semplice script in bash. Non sono un esperto, anzi sono ben accetti consigli. Per ora, lo script, fa il lavoro suo.
Ne ho create due versioni:
-Una che accetta il formato [email protected] e restituisce in una cartella chiamata emails tanti file di testo uno per provider spezzando la lista in piu liste.
-Uno che accetta anche il formato [email protected] : Password facendo la stessa cosa, ma mantenendo nell'output anche la password.
Usage:
MAIL SORTER
Versione funzionante, la 0.1 presentava problemi se si provava ad appendere nuovi plaintext in una cartella email già esistente. Aggiunti check per la cartella.
MAIL E PASSWORD SORTER
Versione funzionante, la 0.1 presentava problemi se si provava ad appendere nuovi plaintext in una cartella email già esistente. Aggiunti check per la cartella.
---------
Ben accetti consigili! lo script sembra abbastanza veloce nella sua esecuzione. i tempi di esecuzione dipendono dal file che gli date in pasto. Cheers!
peste666
Ne ho create due versioni:
-Una che accetta il formato [email protected] e restituisce in una cartella chiamata emails tanti file di testo uno per provider spezzando la lista in piu liste.
-Uno che accetta anche il formato [email protected] : Password facendo la stessa cosa, ma mantenendo nell'output anche la password.
Usage:
Codice:
chmod +x mailonly.sh mailpassword.sh
./mailpassword.sh nomefile
./mailonly.sh nomefile
MAIL SORTER
Bash:
#!/bin/bash
#mail sorter v 0.1 _ peste666
#ATTENZIONE! DARE A QUESTO SCRIPT UN FILE FORMATO MAIL:PASSWORD GENERERÀ JUNK NELLA CARTELLA DI DESTINAZIONE. USARE L'ALTRO SCRIPT
#mail format version
#check che sia effettivamente stato inserito un nome
if [[ $# -eq 0 ]] ; then
echo "Non hai inserito nessun argomento. Usage: ./mailpassword.sh nomefile"
echo "www.inforge.net/forum/"
exit 0
fi
#prendo il nome del file e salvo la variabile
plaintext=$1
#check se il file esiste
if [ ! -f $plaintext ]; then
echo "File non trovato!"
exit
fi
#Con la seguente riga vengono ordinate e in seguito tagliate tutte le mail creando una lista in un file chiamata listasolomail
sort -t '@' -k2 $plaintext | awk -F '@' '{print $2}' | uniq > listasolomail
#creiamo una cartella per pulizia
mkdir emails && cd emails
#creo un nuovo script grepfile.sh che contiene il comando per greppare la lista di mail in ogni riga.
awk -v var="$plaintext" '{print "grep " $1 " ../"var" >> " $1}' ../listasolomail > grepfile.sh
#rendiamo il nuovo script eseguibile e lo eseguo
chmod +x grepfile.sh
#eseguo lo script generato
./grepfile.sh 2> /dev/null
#rimuovo i file creati in precedenza. In caso sia anche necessaria la lista delle email, commentate l'ultima riga.
rm grepfile.sh
rm ../listasolomail
Bash:
#!/bin/bash
#mail sorter v 0.2 by matt
#ATTENZIONE! DARE A QUESTO SCRIPT UN FILE FORMATO MAIL:PASSWORD GENERERÀ JUNK NELLA CARTELLA DI DESTINAZIONE. USARE L'ALTRO SCRIPT
#mail format version
#check che sia effettivamente stato inserito un nome
if [[ $# -eq 0 ]] ; then
echo "Non hai inserito nessun argomento. Usage: ./mailpassword.sh nomefile"
echo "www.inforge.net/forum/"
exit 0
fi
#chiedo il nome del file e salvo la variabile
plaintext=$1
if [ ! -f $plaintext ]; then
echo "File non trovato!"
exit
fi
#Con la seguente riga vengono ordinate e in seguito tagliate tutte le mail creando una lista in un file
#chiamata listasolomail
sort -t '@' -k2 $plaintext | awk -F '@' '{print $2}' | uniq > listasolomail
#creiamo una cartella per pulizia
cartella=emails/
if [ -d "$cartella" ]; then
echo "la cartella emails già esiste"
fi
if [ ! -d "$cartella" ]; then
echo "la cartella emails non esiste, la creo..."
mkdir emails
fi
cd emails
#creo un nuovo script grepfile.sh che contiene il comando per greppare la lista di mail in ogni riga.
awk -v var="$plaintext" '{print "grep " $1 " ../"var" >> " $1}' ../listasolomail > grepfile.sh
#rendiamo il nuovo script eseguibile e lo eseguo
chmod +x grepfile.sh
chmod +r ../listasolomail
#commentare questa riga in caso il lo script non si voglia eseguire subito. commentare anche il comando che elimina questo file
#quattro righe più avanti
./grepfile.sh 2> /dev/null
#rimuovo i file creati in precedenza
#in caso sia anche necessaria la lista delle email, commentate solo l'ultima riga.
rm grepfile.sh
rm ../listasolomail
MAIL E PASSWORD SORTER
Bash:
!/bin/bash
#mail sorter v 0.1 _ peste666
#mail:password format version
#check che sia effettivamente stato inserito un nome
if [[ $# -eq 0 ]] ; then
echo "Non hai inserito nessun argomento. Usage: ./mailpassword.sh nomefile"
echo "www.inforge.net/forum/"
exit 0
fi
#prendo il nome del file e salvo la variabile
plaintext=$1
#check se il file esiste
if [ ! -f $plaintext ]; then
echo "File non trovato!"
exit 0
fi
#Con la seguente riga vengono ordinate e in seguito tagliate tutte le mail creando una lista in un file chiamata listasolomail
sort -t '@' -k2 $plaintext | awk -F ':' '{print $1}' | awk -F '@' '{print $2}' | uniq > listasolomail
#creiamo una cartella per pulizia
mkdir emails && cd emails
#creo un nuovo script grepfile.sh che contiene il comando per greppare la lista di mail in ogni riga.
awk -v var="$plaintext" '{print "grep " $1 " ../"var" >> " $1}' ../listasolomail > grepfile.sh
#rendiamo il nuovo script eseguibile e lo eseguo
chmod +x grepfile.sh
#eseguo lo script generato
./grepfile.sh 2> /dev/null
#rimuovo i file creati in precedenza. In caso sia anche necessaria la lista delle email, commentate l'ultima riga.
rm grepfile.sh
rm ../listasolomail
Bash:
#!/bin/bash
#mail sorter v 0.2 by matt
#mail:password format version
if [[ $# -eq 0 ]] ; then
echo "Non hai inserito nessun argomento. Usage: ./mailpassword.sh nomefile"
echo "www.inforge.net/forum/"
exit 0
fi
#chiedo il nome del file e salvo la variabile
plaintext=$1
if [ ! -f $plaintext ]; then
echo "File non trovato!"
exit 0
fi
#Con la seguente riga vengono ordinate e in seguito tagliate tutte le mail creando una lista in un file
#chiamata listasolomail
sort -t '@' -k2 $plaintext | awk -F ':' '{print $1}' | awk -F '@' '{print $2}' | uniq > listasolomail
#creiamo una cartella per pulizia
cartella=emails/
if [ -d "$cartella" ]; then
echo "la cartella emails già esiste"
fi
if [ ! -d "$cartella" ]; then
echo "la cartella emails non esiste, la creo..."
mkdir emails
fi
cd emails
#creo un nuovo script grepfile.sh che contiene il comando per greppare la lista di mail in ogni riga.
awk -v var="$plaintext" '{print "grep " $1 " ../"var" >> " $1}' ../listasolomail > grepfile.sh
#rendiamo il nuovo script eseguibile e lo eseguo
chmod +x grepfile.sh
chmod +r ../listasolomail
#commentare questa riga in caso il lo script non si voglia eseguire subito. commentare anche il comando che elimina questo file
#quattro righe più avanti
./grepfile.sh 2> /dev/null
#rimuovo i file creati in precedenza
#in caso sia anche necessaria la lista delle email, commentate solo l'ultima riga.
rm grepfile.sh
rm ../listasolomail
---------
Ben accetti consigili! lo script sembra abbastanza veloce nella sua esecuzione. i tempi di esecuzione dipendono dal file che gli date in pasto. Cheers!
peste666