每次读取指定目录、指定数量的文件shell脚本

#!/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin
LANG=zh_CN.GB18030
export PATH LANG

ANALYZER_HOME=$(cd "$(dirname "$0")"; pwd)
cd $ANALYZER_HOME

declare -a fileArr

echo $1", "$2
function listDirFile() {
  #fileArr=()
  i=1
  for file in `ls $1|grep -E "\.txt$"`
  do
    if [ -d $1"/"$file ]
      then
        listDirFile $1"/"$file
      else
        f=$1"/"$file
        doing=$1"/"$file.doing
        echo $f" -> "$doing
mv -f $f $doing
        fileArr[$i]=$doing
        i=`expr $i + 1`
        if [ "$i" -gt "$2" ]
          then
            #echo $2" break "$1
            break
        fi
    fi
  done
}

listDirFile $*
i=1
for data in ${fileArr[@]}  
do
  echo $i": "${data/.doing/}
  #mv -f ${data} ${data}.done  
  mv -f $data `echo $data | sed ‘s/doing$/done/‘`
  i=`expr $i + 1`
done

执行

# readFile.sh 目录 数量
readFile.sh /home/user/files 2



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。