根据此业务数据核查的一些共性,写了个脚本,安排组员使用这个脚本核查的时候就不必要说一大堆,简单,方便。记录下。
#!/bin/bash
E_BADARGS=67
if [[ $1 =~ [^0-9]+ ]]||[[ $1 -lt 1 ]]||[[ $1 -gt 14 ]]
then
echo "This \$1 parameters must be Interger(00-14).";exit $E_BADARGS
fi
if [[ $2 =~ [^0-9]+ ]]
then
echo "This \$2 parameters must be Interger.";exit $E_BADARGS
fi
if [ $# -ne 3 ]||[ "$2" -gt 365 ]||[ "$2" -lt 1 ]
then
echo "Usage: `basename $0` (01-14) date(1-365) kpi_id"
echo "example: `basename $0` 02 166 WAPHA02"
exit $E_BADARGS
fi
file_path=/opt/ultrapower/ultracollect/backup
hecha_dir=/opt/ultrapower/ultracollect/script/hecha
file_name=WAP-01-"$1"-"$2"-*
after_day=$2
let "after_day +=1"
cd $hecha_dir
find ./ -name "WAP-01*" -exec rm {} \;
cd $file_path
cp $file_name $hecha_dir
#cp WAP-01-01-"$after_day"-* $hecha_dir
cp WAP-01-"$1"-"$after_day"-00.xml $hecha_dir
cp WAP-01-"$1"-"$after_day"-01.xml $hecha_dir
cp WAP-01-"$1"-"$after_day"-02.xml $hecha_dir
cd $hecha_dir
rm WAP-01-"$1"-"$2"-00.xml
rm WAP-01-"$1"-"$2"-01.xml
rm WAP-01-"$1"-"$2"-02.xml
find ./ -name "*" -exec cat {} \;|egrep "$3"|awk -F\" '{print $3}'|awk -F\< '{print $1}'|awk -F\> '{print $2}'>$hecha_dir/../hecha.t
xt
这里列出几个知识点
1.在版本 2.02 的Bash 中,推出了一个新的[[...]]扩展test 命令.因为这种表现形式可能对某些语
言的程序员来说更加熟悉.注意"[["是一个关键字,并不是一个命令.
2.=~ 表示后面要使用正则表达式
这里需要$1为数字, 使用[^0-9]+,也即是参数中匹配非数字,那么就符合条件,这就一定是数字了。