zoukankan      html  css  js  c++  java
  • 随机从一个文件夹中抽若干文件复制到另一个文件夹里

    从一个文件夹里随机抽些文件复制到另一个文件夹里:

    #!/bin/bash
    rootpath="/home/parapax/dev/"
    testdatanum=5
    srcpath=${rootpath}featureCata
    #srcpath=${rootpath}dir
    distpath=${rootpath}featureCata1
    echo $rootpath
    echo $srcpath
    
    
    filenames=`ls ${srcpath}`
    
    #echo $filenames
    
    len=0
    for file in $filenames
    do
    #echo $file;
    len=`expr $len + 1`;
    #echo $len;
    done
    
    echo "len="$len
    for ((freq=0;freq<5;freq++));
    do
    rand=$RANDOM;
    echo $rand;
    ((i=$rand%$len));
    echo "i="$i;
    file=`echo ${filenames}|cut -d " " -f$i`;
    echo $file;
    cp ${srcpath}"/"$file ${distpath}"/"$file
    done

    cut命令里,-d表示分隔符,这里使用冒号: 作为分隔符,-f 表示字段

    详见http://blog.csdn.net/arkblue/article/details/8507989

    bash里的变量自增:

    1. i=`expr $i + 1`;
    2. let i+=1;
    3. ((i++));
    4. i=$[$i+1];
    5. i=$(( $i + 1 ))

    上面的脚本一开始在ubuntu里跑的时候一直提示Syntax error: Bad for loop variable,搜了一下,发现是以下原因:

    Ubuntu为了加快开机速度,用dash代替了传统的bash,是dash在捣鬼。

    解决方法是 取消dash

    sudo dpkg-reconfigure dash
    在选择项中选No,即可。

  • 相关阅读:
    电子商务概论【0351】
    数据库原理
    建筑结构CAD[0753]
    计算机图像处理基础[9124]
    计算机基础[1056]
    计算机组成原理【0013】
    C语言程序设计【0039】
    计算机基础1056
    专业英语[0089]
    double数据转换成char字符串的函数——dtostrf()用法
  • 原文地址:https://www.cnblogs.com/parapax/p/3722545.html
Copyright © 2011-2022 走看看