本文共 2896 字,大约阅读时间需要 9 分钟。
自己写的文件拆分
cd /product1/port/ocs_subscriber_import/src/local filerowcount=0 for filename in `ls -l ${vfile}| awk '{print $9}'` do newfilenameleft=${filename%.*} filerowcount=`cat -n $filename |wc -l` temp=`expr $filerowcount \% 500000` echo "tmp=${temp}" temp1=`expr $filerowcount / 500000` if [ $temp -gt 0 ] ; then temp1=`expr $temp1 + 1` fi file_seq=1; hrow=500000; echo "temp1=${temp1}" while [ $file_seq -le $temp1 ] do newfilenameleft="${newfilenameleft}_${file_seq}.unl" if [ `expr $filerowcount-$hrow` -ge $hrow ]; then head -$hrow | tail -500000 >$newfilenameleft else echo "---xx" if [ $filerowcount -le $hrow ] ; then n=$filerowcount else n=`expr $filerowcount-$hrow` fi echo "n=${n}, hrow=${hrow}" head -$hrow | tail -$n >$newfilenameleft #这行有问题 fi file_seq=`expr $file_seq+1` hrow=`expr $hrow+500000` donedone
这实际上等同于:
split -l 500000 GXalluserinfo_V_20120704_101_000022.unl GXalluserinfo_V_20120704_101_000022.unl.
实例-----------------------------
FTPHOST="130.51.10.99" USERNAME="xxxxx" PASSWORD="xxxxxxx" ld=$(perl -e "use POSIX qw(strftime); print strftime '%Y%m%d' , localtime( time()-3600*24*1) ") echo $ld vfile="GXalluserinfo_V_${ld}_*.unl" bfile="GXyestacctbal_V_${ld}_*.unl" localpath="/product1/port/bin/ocs_subscriber_import/local" localbackpath="/product1/port/bin/ocs_subscriber_import/back/" curpath="/product1/port/bin/ocs_subscriber_import/" #取GXyestacctbal_V bal_v_backpath="/data/jingfen/GXyestacctbal/backup/" bal_v_path="/data/jingfen/" #bal_v_backpath="/product1/interf/ocs_subscriber_import/src/back/" #bal_v_path="/product1/interf/ocs_subscriber_import/src/back/" ftp -i -n $FTPHOST<<FTPIT user $USERNAME $PASSWORD lcd ${localpath} bin prom cd ${bal_v_path} mget ${bfile} quit FTPIT #处理取GXyestacctbal_V echo "---------------------------" cd $localpath for filename in `ls -l ${bfile}| awk '{print $9}'` do cd $curpath ./ocs_subscriber_import GXyestacctbal $filename echo "" ftp -i -n $FTPHOST<<FTPIT2 user $USERNAME $PASSWORD bin prom cd $bal_v_path rename $filename "${bal_v_backpath}${filename}.bak" quit FTPIT2 done echo "" echo "" echo "" #取GXalluserinfo_V info_v_backpath="/data/jingfen/GXalluserinfo_V/backup/" info_v_path="/data/jingfen/" #info_v_backpath="/product1/interf/ocs_subscriber_import/src/back/" #info_v_path="/product1/interf/ocs_subscriber_import/src/back/" ftp -i -n $FTPHOST<<FTPIT3 user $USERNAME $PASSWORD lcd ${localpath} bin prom cd ${info_v_path} mget ${vfile} quit FTPIT3 #处理GXalluserinfo_V cd ${localpath} for filename in `ls -l ${vfile}| awk '{print $9}'` do split -l 500000 ${filename} ${filename}. mv ${filename} ${localbackpath} ftp -i -n $FTPHOST<<FTPIT4 user $USERNAME $PASSWORD bin prom cd ${info_v_path} rename $filename "${bal_v_backpath}${filename}.bak" quit FTPIT4 done cd ${localpath} for filename in `ls -l * | awk '{print $9}'` do cd ${curpath} nohup ./ocs_subscriber_import GXalluserinfo_V $filename >nohup.out & done转载地址:http://lmvwn.baihongyu.com/