文件拆分的问题

自己写的文件拆分


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`
  done

done



这实际上等同于:

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值