#!/bin/bash
#
#    createlist - filter, sort, uniq  proxies  from raw
#
#    Copyright (C) 2005 Jia Wang (skyroam@gmail.com)
#
#    This file is part of Phc.
#
#    Phc is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    Foobar is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with Foobar; if not, write to the Free Software
#    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
# RULES:
# abc123:456@HtTPxyz -> abc123:456@HTTP
# abc123:456@socks5xyz -> abc123:456@SOCKS5
#usage: ./createlist infile outfile
#init
PROTO="HTTP SOCKS5"
in=$1
out=$2
#upper
cat $in|tr -d ' '|tr -d "\t"|tr -d "\b"|tr -d "\v"|tr "[a-z]" "[A-Z]">$in.tmp.0
#select line
IFS=" "
cat $in.tmp.0 |while read line
do for key in $PROTO
   do data=`echo $line|sed -ne "s/\([^:]*\):\([0-9]*\)@\($key\).*/\1:\2@\3/p"`
   echo $data |sed -e "/^$/d" >> "$in".tmp.1
   done
done
#uniq 
sort -n "$in".tmp.1|uniq - $out
rm -f $in.tmp.0 $in.tmp.1


