`
垂直的微笑
  • 浏览: 45265 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

差分抽取

 
阅读更多
#!/bin/bash

function GetKey(){    
    section=$(echo $1 | cut -d '.' -f 1)    
    key=$(echo $1 | cut -d '.' -f 2)    
    sed -n "/\[$section\]/,/\[.*\]/{    
     /^\[.*\]/d    
     /^[ \t]*$/d    
     /^$/d    
     /^#.*$/d    
     s/^[ \t]*$key[ \t]*=[ \t]*\(.*\)[ \t]*/\1/p    
    }" rule    
}

function GetInclude(){    
    sed -n "/\[$1\]/,/\[.*\]/{    
     /^\[.*\]/d    
     /^[ \t]*$/d    
     /^$/d    
     /^#.*$/d   
	s/^[ \t]*\(.*\)[ \t]*/\1/p    	 
    }" rule    
}

BACKUP_FOLDER=$(GetKey "base.dir_Test")
OUT_FOLDER1=$(cd "$(dirname "$0")"; pwd)/Release/
OUT_FOLDER2=$(cd "$(dirname "$0")"; pwd)/Compare/

INCLUDE_PARAM=""
EXCLUDE_PARAM=""
HONBAN=""
for ed in $(echo $(GetKey "exclude.dirs")|tr ':' ' '|tr -s ' ')
do
  EXCLUDE_PARAM=$EXCLUDE_PARAM" -x "$ed
done
if [ "$#" -gt 0 ]; then
   if [ ! -z $(echo $1|grep "-") ]; then
    while getopts hix: OPTION
	do
	   case $OPTION
	   in i)for ed in $(cat rule |grep -v "exclude" | grep -v "base" |grep "\[\(.*\)\]" |tr '\n|\[\]' ' ')
			do
			   for module in $(GetInclude $ed)
			   do
				 INCLUDE_PARAM=$INCLUDE_PARAM"\/"$ed"\/"$module"\/|"
			   done
			done
			INCLUDE_PARAM=$(echo $INCLUDE_PARAM |sed "s/.$//");;
			
		  h)BACKUP_FOLDER=$(GetKey "base.dir_HB");
			HONBAN="TRUE";
			OUT_FOLDER1=$(cd "$(dirname "$0")"; pwd)/Release_HB/;:
			OUT_FOLDER2=$(cd "$(dirname "$0")"; pwd)/Compare_HB/;;
		  x)EXCLUDE_PARAM=$EXCLUDE_PARAM" -x "$OPTARG;;
		  \?)echo "invalid parameter!"
			 exit 1;;
	   esac
	done
	shift $(($OPTIND - 1))	
   fi
fi
echo $INCLUDE_PARAM
#echo "EXCLUDE_PARAM:"$EXCLUDE_PARAM
echo "----------------------------------------------------------------------------------------------------------"
shopt -s extglob 
if [ -d $OUT_FOLDER1 ]; then
 rm -rf $OUT_FOLDER1!(db-upgrade|*.sh|pmnwdl-inc)
else
 mkdir -p $OUT_FOLDER1
fi
if [ -d $OUT_FOLDER2 ]; then
 rm -rf $OUT_FOLDER2
 mkdir -p $OUT_FOLDER2
else
 mkdir -p $OUT_FOLDER2
fi

REL_FOLDER=$(echo $1 |sed "s/[\/]$//") 
TMP_FOLDER=$(echo $2 |sed "s/[\/]$//") 
if [ ! -z $REL_FOLDER ]; then
  if [ ! -z $(echo $REL_FOLDER|grep -E "^[0-9]+$") ]; then
     REL_FOLDER=$BACKUP_FOLDER$(ls -t $BACKUP_FOLDER | sort -r | grep $REL_FOLDER | head -n 1)
  fi
else
  REL_FOLDER=$(ls -t $BACKUP_FOLDER | sort -r | grep $(date +%Y%m%d) | head -n 1)
  if [ -z $REL_FOLDER ]; then
    REL_FOLDER=$(ls -t $BACKUP_FOLDER | sort -r| head -n 1)
  fi
   REL_FOLDER=$BACKUP_FOLDER$REL_FOLDER
fi

if [ -z $2 ]; then 
 CNOW=$(echo "$REL_FOLDER"|awk 'BEGIN{FS="/"} {print substr($5,0,8)}')
 #echo 'CNOW:'$CNOW
 TMP_FOLDER=$BACKUP_FOLDER$(ls $BACKUP_FOLDER |sort -r |awk -v cnow="$CNOW" '{for(i=1;i<=NF;i++) if(substr($i,0,8) < cnow ){ print $i;exit}}')
fi

echo "REL_FOLDER:"$REL_FOLDER
echo "TMP_FOLDER:"$TMP_FOLDER
echo "----------------------------------------------------------------------------------------------------------"
if [ -d $REL_FOLDER -a -d $TMP_FOLDER ]; then
  if [ ! -z $(echo $REL_FOLDER|grep -E '^/home/basz/.*/[0-9]+$') -a ! -z $(echo $TMP_FOLDER|grep -E '^/home/basz/.*/[0-9]+$') ]; then
	for file in $(diff -x .svn $EXCLUDE_PARAM -qurN $REL_FOLDER $TMP_FOLDER |awk '{print $2 }')
	do	
		if [ ! -z $INCLUDE_PARAM ]; then
			if [ -z $(echo $file | grep -E $INCLUDE_PARAM) ]; then
				continue
			fi
		fi

		 if [ -f $file ]; then
			if [ -z $HONBAN ]; then
				BASEFOLDER=$(dirname $file|cut -d '/' -f 6-)
				FOLDER1=$OUT_FOLDER1$BASEFOLDER
				FOLDER2=$OUT_FOLDER2$BASEFOLDER
				if [ ! -d $FOLDER1 ]; then  
				  mkdir -p $FOLDER1  
				fi  
				if [ ! -d $FOLDER2 ]; then  
					  mkdir -p $FOLDER2  
				fi  
				cp -fp $file $FOLDER1/
				echo $file
				file2=$TMP_FOLDER/$BASEFOLDER/$(basename $file)
				if [ -f $file2 ]; then
				  #echo $file2
				  cp -fp $file2 $FOLDER2/
				fi
			else
				BASEFOLDER=$(dirname $file|cut -d '/' -f 6-7)
				FOLDER1=$OUT_FOLDER1$BASEFOLDER
				FOLDER2=$OUT_FOLDER2$BASEFOLDER
				if [ ! -z $BASEFOLDER ]; then
					if [ ! -d $FOLDER1 ]; then  
					  echo $REL_FOLDER/$BASEFOLDER
					  mkdir -p $FOLDER1  
					  cp  -rfp $REL_FOLDER/$BASEFOLDER/* $FOLDER1
					fi 
				fi
			fi
		 fi
	done
	chown -R builder:builder $OUT_FOLDER1
	chown -R builder:builder $OUT_FOLDER2
    exit 0 
  fi
fi
echo 'invalid folder!'

分享到:
评论

相关推荐

    使用差分进化 的关键帧提取_python_代码_下载

    使用差分进化的关键帧提取 实现 DE 以从视频流中提取关键帧的 Python 脚本。 存储库包含五个 python 脚本: DE_SSIM.py 此脚本使用平均 SSIM 作为适应度函数。 输入:JPEG 图像(视频中的帧) 输出:包含所有...

    论文研究-一种基于核的最大散度差特征抽取方法.pdf

    研究了一种基于核的最大散度差准则的文本特征抽取方法。首先回顾了文本分类中特征降维的主要方法、Fisher准则及其相关研究进展以及存在的问题;然后分析了基于散度差准则的线性鉴别方法的优点与不足,借助于核函数较...

    matlab开发-16点半径2差分

    matlab开发-16点半径2差分。频率快速傅立叶变换中16点抽取的实现

    文本分类中一种基于核的最大散度差特征抽取方法* (2009年)

    研究了一种基于核的最大散度差准则的文本特征抽取方法。首先回顾了文本分类中特征降维的主要方法、Fisher准则及其相关研究进展以及存在的问题;然后分析了基于散度差准则的线性鉴别方法的优点与不足,借助于核函数较...

    CIC插值抽取滤波器的matlab仿真及FPGA实现

    CIC滤波器是一种具有累积效应的滤波器,通过多级级联的差分延迟环来实现。它可以有效地降低采样率,并在降采样后对信号进行插值。 CIC滤波器的插值功能是通过增加滤波器的级数来实现的。每增加一个级数,CIC滤波器的...

    基于Sigrity软件PowerSI提取PCB的S参数.docx

    Sigrity软件PowerSI提取PCB的S参数

    ANSYS 14.5 ICEM CFD Tutorial Manual.pdf

    交替方向隐式方法是为了对二维区域内偏微分方程的差分求解而发展起来的一类方法。二维区域的偏微分方程,当使用隐式差分方法格式求解时,形成的五对角方程组如果用高斯赛德尔迭代法、线松弛迭代等方法求解,工作量...

    论文研究-基于新模糊准则与DE算法的红外人体图像分割.pdf

    首先在对模糊熵方法本质分析的基础上 ,通过参数变换定义了一种新的最小化模糊准则 ,然后将差分演化 ( differential evolution, DE)算法与新模糊准则相结合用于快速、有效地获取最佳阈值 ,最后在真实红外人体图像上与...

    论文研究-基于散度差准则的文本特征降维研究.pdf

    研究了一种基于散度差准则的文本特征抽取方法。首先讨论了文本分类中特征降维的主要方法及其特点,然后分析了一种基于散度差的准则用于特征降维的原理和方法,从理论上对该方法的相关步骤进行了数学论证。在中文文本...

    嵌入式设备Qt程序的升级

    从自己的实际项目中抽取出来的一个升级的简单案例,适用于ARM Linux Qt 平台。

    Java编写多个爬虫实例

    Java爬虫实例类说明如下: DownLoadFile 文件下载 ...MyCrawler 爬虫 ConsistentHash 一致性Hash ...compress 差分编码压缩 similarity 计算文档相似性 DocCluster kMeans实现的文档聚类 SVM 支持向量机实现的文档分类

    论文研究-室外视频前景检测中的形态学改进ViBe算法.pdf

    背景差分法是实际中应用最广泛的前景检测方法,其关键是背景建模,比较常用的背景建模方法是高斯混合模型GMM(Gaussian Mixture Model)。最近一种称为视觉背景抽取算法ViBe(Visual Background extractor)由于其...

    数字信号处理课后答案 高西全 丁玉美

    时域离散系统的网络结构及数字信号处理的实现 4.1 教材第5章学习要点 4.2 按照系统流图求系统函数或者差分方程 4.3 按照系统函数或者差分方程画系统流图 4.3.1 FIR中的线性相位结构 4.3.2 FIR中的频率采样结构 4.3.3...

    一种多粒度融合的模糊规则系统图像特征学习算法

    然而,深度神经网络图像特征抽取方法目前也面临着诸多挑战,其有效性严重依赖大规模的数据,且通常被视汋黑盦模型,解释性较差。针对上述挑战,以基于模糊规则推理的TSK模糊系统(TSK-FS)为基础,提出了一种适用于...

    Keysight 16860 Series Portable Logic Analyzers使用说明书

    • 单端和差分探测支持。 • 内置15英寸彩色触摸屏,分辨率1024 x 768 • 抽取式硬盘 • 10/100/1000 Base-T LAN 接口 • USB 2.0接口(总共6个,两个在前面,四个在后面) • 1个PCI扩展插槽 • 1个PCI Express x1...

    模拟技术中的凌特公司推出响应时间为1us的60V高压侧电流检测放大器

     LTC6101 用来从高共模电压中抽取小差分信号,然后加以放大并转换成以地为基准的信号。精确实现这一功能一般需要分立组件和运算放大器、差分放大器或仪表放大器。LTC6101 简化了这一任务,仅需采用 ThinSOTTM 封装...

    模拟技术中的Linear 60V 高压侧电流检测放大器

    LTC6101 用来从高共模电压中抽取小差分信号,然后加以放大并转换成以地为基准的信号。精确实现这一功能一般需要分立组件和运算放大器、差分放大器或仪表放大器。LTC6101 简化了这一任务,仅需采用 ThinSOTTM 封装的...

    模拟技术中的AKM 24位双通道A/D、D/A转换器

    此款ADC支持带有IPGA的单端输入和低失真的差分输入,可通过引脚或寄存器控制。单端输入模式下其ADC的动态范围比AK4524提高了10dB,差分输入模式下的动态范围比AK4528提高了5dB。AK4620A支持DSD数据回放功能,其DAC...

Global site tag (gtag.js) - Google Analytics