zoukankan      html  css  js  c++  java
  • 统计一个目录下的文件数

    #!/bin/bash
    #******************
    #统计一个目录下的文件,并根据文件的拥有者统计出每个用户的文件个数,并采用进度条的方式显示出结果
    #*copyleft maisui2016-03-13
    #*version 1
    if [ $# != 1 ]
    then 
    	echo 
    	echo "count how many file belong to which user:"
    	echo "Usage:"
    	echo -e "	 `basename $0` [directory]"
    	echo
    	exit 1
    fi
    ls -lR "$1" | awk '
    	function max(arr,i,max_number){
    		max_number=0
    		for ( i in arr ){
    			max_number=arr[i];
    		}
    		return max_number
    	}
    	function progress_length(currentlength,maxlength)
    	{
    		return currentlength/maxlength*50	
    	}
    	BEGIN {
    		printf "%-10s %8s
    ","username","filenumbers";
    	}
    	/^-/{
    	result[$3]++
    	}
    	END {
    		max_length=max(result);
    		for (user in result)
    			{
    				printf "%-10s[%8d]: ",user,result[user];
    				for (i=1;i<progress_length(result[user],max_length);i++)
    				{
    					printf "######"
    				}
    		}	printf "
    ";
    	}
    	'
    exit 0
    

    awk语言遍历数组中的所有元素用的for语句 for(i in array)
    打印进度条时,需要用文件个数最多的用户为基准来显示进度条,首先在END中调用函数max获得进度条,max函数接受两个参数,第一个参数arr代表了调用时传进的数组名,另外两个不是参数,而是max函数的本地变量,变量i在遍历数组时,连续地保存了索引值,而变量max_number用来记录数组元素中最大值

  • 相关阅读:
    pagination分页插件使用
    ajax实现图片文件上传和图片预览
    屏幕护眼色调调节
    css画三角形以及实现带三角的阴影效果
    软件测试homework3
    使用Junit包进行单元测试并导入eclemma包。
    软件测试homework2
    软件测试homework1 编程过程的一个小错误
    ReentrantLock
    Elasticsearch-基本概念
  • 原文地址:https://www.cnblogs.com/hanfei-1005/p/5708088.html
Copyright © 2011-2022 走看看