Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Perl (http://www.go4expert.com/forums/perl/)
-   -   Shell to perl (http://www.go4expert.com/forums/shell-to-perl-t25823/)

citiwang 18May2011 09:16

Shell to perl
 
I have done a script, but it is based on shell script, and i want to convert it to perl. I am very new to perl.
#!/bin/bash
#set -x
fileday=$1
result_file=Total`date +%Y%m%d%H%M`
out_folder=/home/cmd/pm_analyze
tmp_folder=/tmp/pmtmp
datatype='split licenceCounter cdrsReceivedTotSum cdrsCombinedSum cdrsAggregatedSum'
ch_server() {
###### Choosing which server #################
echo "Please Choose Host IP ?"
echo " 1) CGX02 172.17.11.23"
echo " 2) CGX03 172.17.11.24"
echo " 3) CGW03 172.17.12.23"
echo " 4) CGW04 172.17.12.24"
echo " 5) CGT01 172.17.9.51"
read server
if [ "$server" = "1" ]
then
hostip="172.17.11.23"
elif [ "$server" = "2" ]
then
hostip="172.17.11.24"
elif [ "$server" = "3" ]
then
hostip="172.17.12.23"
elif [ "$server" = "4" ]
then
hostip="172.17.12.24"
else
hostip="172.17.9.51"
fi
}
proc_pm() {
for i in $datatype
do
total=0
number=0
filename=$tmp_folder/$i.log
echo "Now processing $filename"
while read line
do
number=` echo $line | cut -d '>' -f2 | cut -d '<' -f1 `
let total+=number
done < $filename
echo " the $i total sum = $total" >> $out_folder/$result_file
done
}
#### Check Output folder exit or not #################
if [ ! -d $out_folder ]
then
echo "#######output folder not exit !! Creating #####"
mkdir -p $out_folder
if [ ! -d $out_folder ]
then
echo "Creating Fail !! Pleae check"
exit
else
echo "Create Success"
fi
fi
if [ ! -d $tmp_folder ]
then
echo "#######TMP folder not exit !! Creating #####"
mkdir -p $tmp_folder
if [ ! -d $tmp_folder ]
then
echo "Creating Fail !! Pleae check"
exit
ele
echo "Create Success"
fi
fi
##################Checking tmp folder data ##################
echo "************************ Warring **************************"
echo "*** All the files under temp folder will be deleted. ******"
echo "*** Temp folder is $tmp_folder ******"
echo "************************************************* **********"
read -p "Are you sure continue processing (yes/no):" answer
#read answer
if [ "$answer" == "n" ] || [ "$answer" == "no" ]
then
exit 0;
else
tmpfiles=`ls -al $tmp_folder/*.log | wc -l`
if [ "$tmpfiles" == "0" ]
then
echo "************************************************* **************"
echo " ********* OK, There are no any logs under $tmp_folder ********"
echo "************************************************* **************"
else
rm $tmp_folder/*
tmpfiles1=`ls -al $tmp_folder/*.log | wc -l`
echo $tmpfiles1
if [ "tmpfiles1" == "0" ]
then
echo " ********* OK, All files are deleted ********"
else
echo " ********* There are some logs cannot deleted. Please check it. ********"
exit 0
fi
fi

fi
##### choosing which file type #################
echo "Please Choose Solution ?"
echo " 1) Please Input An filename ?"
echo " 2) Summation Daily Total Counts"
read ftype

if [ "$ftype" == "1" ]
then
echo "Please input filename and file path"
read filepath
if [ ! -e "$filepath" ]
then
echo "************************************"
echo "*****Shit!! File does not exist****"
echo "************************************"
exit
fi
for i in $datatype
do
gzcat $filepath |grep $i >> $tmp_folder/$i.log
done
proc_pm;
elif [ $ftype == "2" ]
then
echo " Please input date for processing "
read filedate
ch_server;
echo "Please input path "
read datepath
datefile=`ls -al $datepath/PM.$hostip.$filedate.*.xml.gz | wc -l`
if [ "$datefile" == "0" ]
then
echo "Sorry !! There are no PM files under $datepath"
exit 1
fi
for i in $datatype
do
gzcat $datepath/PM.$hostip.$filedate.*.xml.gz |grep $i >> $tmp_folder/$i.log
done
proc_pm;
else
echo "Sorry!! You don't give me the right command"
fi


All times are GMT +5.5. The time now is 21:46.