Показать сообщение отдельно

  #2  
Старый 17.05.2007, 21:04
Un_0
Познающий
Регистрация: 11.04.2007
Сообщений: 43
Провел на форуме:
587081

Репутация: 150
По умолчанию

Чтоб не париться со slil.ru (то качает, то не качает), выкладываю здесь.

Код:
#!/bin/sh
# Copyright (C) 2007 Un_0 <Un_0@mail.ru>
#
#===========================================================================================================
#DIALOG=Xdialog
DIALOG=dialog
#===========================================================================================================

TITLE="SpamTools"
MENU=""Select" 0 60 0 "1" "Graber" "2" "Sort" "3" "Generator" "4" "Join" "5" "Include" "6" "Split""

#
#===========================================================================================================
#

error()
{
    echo "$1"
    exit 2
}
help()
{
  cat <<HELP
	###################################################################################
	# Данный  скрипт  предназначен   для работы с базами  адресов электронной  почты. #
	# Он   состоит из нескольких  утилит: генерация  баз, сортировка,  "выдергивание" #
	# адресов из файлов, cклеивание баз, разделение баз, вставка контрольного адреса. #
	#										  # 
	# Для изменения  консольного  интерфейса на графический,  раскомментируйте строку #
	# "DIALOG=Xdialog" и закомментируйте строку "DIALOG=dialog".                      #
	###################################################################################
HELP
  exit 0
}

#
#===========================================================================================================
#
#опции командной строки

while [ -n "$1" ]; do
case $1 in
    -h) help;shift 1;;
    --help) help;shift 1;;
    --) shift;break;;
    -*) echo "error: no such option $1. -h for help";exit 1;;
    *)  break;;
esac
done

#
#===========================================================================================================
#
    $DIALOG --backtitle "SpamTools by Un_0 v0.3" --title $TITLE --menu $MENU 2> /tmp/sel.$$
    rval=$?
    clear
    if [ "$rval" = "0" ]; then

sel=`cat /tmp/sel.$$`
rm -f /tmp/sel.$$

#
#===========================================================================================================
#

if [ "$sel" = "1" ]; then

$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Graber" \
        --inputbox "File (/base.txt):" 0 0 2> /tmp/inputbox.tmp.$$

retval=$?

if [ "$retval" = "0" ]; then
        
$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Graber" \
        --inputbox "Output (/mails.txt):" 0 0 2> /tmp/outbox.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then

output=`cat /tmp/outbox.tmp.$$`
rm -f /tmp/outbox.tmp.$$

input=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$

    grep -E -o -h '[-._a-zA-Z0-9]+@[-_.a-zA-Z0-9]+\.[a-zA-Z]{2,4}' $input  | sort | uniq | tr A-Z a-z >>$output

    { n=`grep -i . $output | wc -l`; $DIALOG --backtitle "SpamTools by Un_0 v0.3" --msgbox "Found $n mails" 5 28 ; }

rm -f /tmp/num.$$

fi
fi

#===========================================================================================================

else if [ "$sel" = "2" ]; then

$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Sort" \
        --inputbox "Input (mails.txt):" 0 0 2> /tmp/inputbox.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then
        
$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Sort" \
        --inputbox "Output (/sort.txt):" 0 0 2> /tmp/outbox.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then

output=`cat /tmp/outbox.tmp.$$`
rm -f /tmp/outbox.tmp.$$

input=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$

    cat $input | sort | uniq | tr A-Z a-z >>$output
    
    { n=`grep -i . $output | wc -l`; $DIALOG --backtitle "SpamTools by Un_0 v0.3" --msgbox "Parsed $n lines" 5 28 ; }

fi
fi

#===========================================================================================================

else if [ "$sel" = "3" ]; then

$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Generator" \
        --inputbox "Input (/names.txt):" 0 0 2> /tmp/inputbox.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then
        
$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Generator" \
        --inputbox "Domain (mail.ru):" 0 0 2> /tmp/domain.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then
        
$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Generator" \
        --inputbox "Output (/Gen.txt):" 0 0 2> /tmp/outbox.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then

domain=`cat /tmp/domain.tmp.$$`
rm -f /tmp/domain.tmp.$$

input=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$

output=`cat /tmp/outbox.tmp.$$`
rm -f /tmp/outbox.tmp.$$

	while read -r xx yy
		do
			printf "%s%s\n" "$yy" "$xx"@$domain >> $output
		done < $input
	
	{ n=`grep -i . $output | wc -l`; $DIALOG --backtitle "SpamTools by Un_0 v0.3" --msgbox "Create $n mails" 5 28 ; }

fi
fi
fi

#===========================================================================================================

else if [ "$sel" = "4" ]; then

$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Join" \
        --inputbox "Input files (/*.txt):" 0 0 2> /tmp/inputbox.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then
        
$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Join" \
        --inputbox "Output (/mails.txt):" 0 0 2> /tmp/outbox.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then

output=`cat /tmp/outbox.tmp.$$`
rm -f /tmp/outbox.tmp.$$

input=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$

    less $input | sort | tr A-Z a-z | uniq >> $output
    
    { n=`grep -i . $output | wc -l`; $DIALOG --backtitle "SpamTools by Un_0 v0.3" --msgbox "Found $n lines" 5 28 ; }

fi
fi

#===========================================================================================================

else if [ "$sel" = "5" ]; then

$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Include" \
        --inputbox "Input (/mails.txt):" 0 0 2> /tmp/inputbox.tmp.$$

retval=$?

if [ "$retval" = "0" ]; then
        
$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Include" \
        --inputbox "Mail (Un_0@mail.ru):" 0 0 2> /tmp/mail.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then
        
$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Include" \
        --inputbox "Lines (10000):" 0 0 2> /tmp/spin.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then
        
$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Include" \
        --inputbox "Output (/include.txt):" 0 0 2> /tmp/outbox.tmp.$$

mail=`cat /tmp/mail.tmp.$$`
rm -f /tmp/mail.tmp.$$

input=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$

output=`cat /tmp/outbox.tmp.$$`
rm -f /tmp/outbox.tmp.$$

spin=`cat /tmp/spin.tmp.$$`
rm -f /tmp/spin.tmp.$$

n=0
q=0

while read -r xx yy
		do
			printf "%s%s\n" "$yy" "$xx" >> $output
			n=`expr $n + 1`
				if [ "$n" = "$spin" ]; then
					echo $mail >> $output
					n=0
					q=`expr $q + 1`
				fi
		done < $input
		
	{ $DIALOG --backtitle "SpamTools by Un_0 v0.3" --msgbox "Include $q mails" 5 28 ; }

fi
fi
fi

#===========================================================================================================
		
else if [ "$sel" = "6" ]; then

$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Split" \
        --inputbox "Input (/mails.txt):" 0 0 2> /tmp/inputbox.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then
        
$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Split" \
        --inputbox "Lines (10000):" 0 0 2> /tmp/spin.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then
        
$DIALOG --backtitle "SpamTools by Un_0 v0.3" --title "Split" \
        --inputbox "Output dir (/home/):" 0 0 2> /tmp/outbox.tmp.$$
        
retval=$?

if [ "$retval" = "0" ]; then

input=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$

output=`cat /tmp/outbox.tmp.$$`
rm -f /tmp/outbox.tmp.$$

spin=`cat /tmp/spin.tmp.$$`
rm -f /tmp/spin.tmp.$$

n=0
k=1

while read -r xx yy
		do
			printf "%s%s\n" "$yy" "$xx"@$domain >> "$output""split_"$k
			n=`expr $n + 1`
				if [ "$n" = "$spin" ]; then
					k=`expr $k + 1`
					n=0
				fi
		done < $input
		
	{ k=`expr $k - 1` ; $DIALOG --backtitle "SpamTools by Un_0 v0.3" --msgbox "Create $k files" 5 28 ; }
	
fi
fi
fi
fi

#===========================================================================================================

fi
fi
fi
fi
fi
fi

#===========================================================================================================

clear

#===========================================================================================================
 
Ответить с цитированием