批量文件筛选处理shell

来源:互联网 发布:php维护 编辑:程序博客网 时间:2024/06/16 12:19


#!/bin/sh#文件筛选操作#日期-默认昨天DATE=`date  +"%Y%m%d" -d  "-1 days"`DATE="20140308"#目录根路径DIR_PATH="/www/web/OP/osstest/testphp/caomei_${DATE}/"#要处理的目录DIR_SUN_FEN="${DIR_PATH}yuan/"#处理后存放的目录DIR_SUN_HE="${DIR_PATH}he/"#echo $DIR_PATH#文件夹数DIR_FEN=100#合并文件名前缀CAOMEI_2="caomei_2_"CAOMEI_3="caomei_3_"#目标基本信息文件名CAOMEI_1="caomei_1"#目标文件名后缀FILE_EXTEND=".txt"##################################################################   function 根据例值查询到匹配的行后,将该行写到文件中(调用)###################################################################$1 要查找的源目录路径#$2 合并后的文件路径及文件名#$3 查询条件function caomei_awk_col(){SOURCE=${1}TARGET=${2}WHERE=${3}#echo $SOURCE#echo $TARGET#find ${SOURCE} -type f -name "*" -print0 | xargs -0 awk -F, '$1==1{print > "/www/web/OP/osstest/testphp/caomei_20140220/he/caomei_tmp.txt"}'#find ${SOURCE} -type f -name "*" -print0 | xargs -0 awk -F, '$1==1{print > "'$TARGET'"}'find ${SOURCE} -type f -name "*" -print0 | xargs -0 awk -F, '$'$WHERE'{print >> "'$TARGET'"}'}#执行开始时间TIME_START=`date +%s%N|cut -c1-13`echo "日期:${DATE} - 分:${DIR_FEN}  开始时间:" `date +%Y%m%d%H%M%S` "\r\n" >> logo.txt#exit ##每行增加字段mac  瓶颈。。。。。。。。。。。。。。# sed -i 's/$/,kkk/'  5.txtfor ((i=1;i<=$DIR_FEN;i++));do{#子文件目录DIR_SUN_FEN_NUM=$DIR_SUN_FEN$i"/*"#目标地址DIR_SUN_HE_1="${DIR_SUN_HE}${CAOMEI_1}${FILE_EXTEND}"DIR_SUN_HE_2="${DIR_SUN_HE}${CAOMEI_2}${i}${FILE_EXTEND}"DIR_SUN_HE_3="${DIR_SUN_HE}${CAOMEI_3}${i}${FILE_EXTEND}"for filename in $DIR_SUN_FEN_NUMdo#echo $filenameMAC_NAME=`basename $filename`#过滤后缀MAC_NAME=${MAC_NAME%\.*}#echo $MAC_NAME#--#sed -i 's/$/,'${MAC_NAME}'/'  $filenameawk -F, '$1==1{print >> "'$DIR_SUN_HE_1'"}' $filenameawk -F, '$1==2{print}' $filename | sed "s/$/,${MAC_NAME}/" >> $DIR_SUN_HE_2awk -F, '$1==3{print}' $filename | sed "s/$/,${MAC_NAME}/" >> $DIR_SUN_HE_3done} &  #加这个符号,即会不断增加进程。 FOR 100次,即100个进程donewait #等待上面的sh 执行完毕,再向下执行#执行结束时间TIME_END=`date +%s%N|cut -c1-13`echo "${TIME_END}-${TIME_START}= Running time:: $((${TIME_END}-${TIME_START}))" >> logo.txtexit#合并id=1行基础信息 【调用function caomei_awk_col】caomei_awk_col ${DIR_SUN_FEN} ${DIR_SUN_HE}${CAOMEI_1} "1==1"#合并id=2的行,合并id=3的行 【调用function caomei_awk_col】for ((i=1;i<=$DIR_FEN;i++))do#来源目录DIR_SUN_FEN_NUM_2=$DIR_SUN_FEN$iDIR_SUN_FEN_NUM_3=$DIR_SUN_FEN$i#目标地址DIR_SUN_HE_2="${DIR_SUN_HE}${CAOMEI_2}${i}${FILE_EXTEND}"DIR_SUN_HE_3="${DIR_SUN_HE}${CAOMEI_3}${i}${FILE_EXTEND}"#echo "${DIR_SUN_HE}${CAOMEI_2}${i}${FILE_EXTEND}"# function 来自哪个目录 合并至哪个目录文件条件caomei_awk_col $DIR_SUN_FEN_NUM_2 $DIR_SUN_HE_2 "1==2"caomei_awk_col $DIR_SUN_FEN_NUM_3 $DIR_SUN_HE_3 "1==3"done



0 0
原创粉丝点击