首页 > 编程语言 > 详细

关联数组——按扩展名统计指定目录中文件的数量

时间:2020-06-25 18:26:32      阅读:111      评论:0      收藏:0      [点我收藏+]

一、脚本说明

#!/bin/bash
#****************************************************
#Date:        2020-06-25
#Author:      Damon Ye
#FileName:   ExtensionName.sh
#Description:$1 indicates the Folder_Path
#****************************************************
declare -A Array
ls $1 | sed s/ /\n/g >> $1/FileName.txt  每个文件名作为单独的1行,保存在FileName.txt中,以便于处理
while read FileName 
 do
   ArrayIndex=${FileName##*.}          贪婪匹配能更准确的找到扩展名。相反,非贪婪匹配能更准确的找到文件名。
   let Array[$ArrayIndex]++
 done < $1/FileName.txt
for i in ${!Array[@]}
  do
    echo "$i :::::: ${Array[$i]}"
  done
rm -f $1/FileName.txt         

二、执行结果

[root@localhost package]# bash ExtensionName.sh  ./test
mp3 :::::: 2
txt :::::: 3
doc :::::: 4
png :::::: 6

三、贪婪匹配——匹配最长的部分

#!/bin/bash
#****************************************************
#Date:        2020-06-25
#Author:      Damon Ye
#FileName:   GreedyMatch.sh
#Description:#匹配方向:从左到右   %匹配方向:从右到左
#****************************************************
filename=1a.2bb.3ccc.txt
echo -e "The filename is \"$filename\""
echo ${filename##*.}      最佳匹配 for 扩展名                                                                                                                                                                   
echo ${filename#*.}
echo ${filename%.*}      最佳匹配 for 文件名
echo ${filename%%.*}


[root@localhost package]# bash GreedyMatch.sh 
The filename is "1a.2bb.3ccc.txt"
txt
2bb.3ccc.txt
1a.2bb.3ccc
1a
             

 四、发散扩展——basename和dirname

[root@localhost test]# pwd
/tmp/test/package/test
[root@localhost test]# basename /tmp/test/package/test    提取路径最后的文件名
test
[root@localhost test]# dirname /tmp/test/package/test     提取路径前面的目录名
/tmp/test/package
[root@localhost test]#
dirname /tmp/test/package/test/file1.sh /tmp/test/package/test [root@localhost test]# basename /tmp/test/package/test/file1.sh file1.sh [root@localhost test]#

 

关联数组——按扩展名统计指定目录中文件的数量

原文:https://www.cnblogs.com/ytdyz/p/13192266.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!