shell腳本遍歷文件,根據文件名分隔符自動創建文件夾並放入對應文件


前不久有一個需求,一個文件夾下有很多文件,文件名用.號分割,需要編寫一個shell腳本,把文件組織成樹型文件夾的結構。
組織前:

 

 

組織后:

 

 

查了不少資料終於完成,代碼如下:

#!/bin/sh
#創建目錄
function CreateDir
{
  _path="$2$1"
  if [ ! -d $_path ]
  then
    mkdir -p $_path
  fi
}
#文件拷貝
function MoveFile
{
  mv $1 $2
}

#主函數:根據文件名自動創建目錄結構
function main
{
#這里是待處理的文件夾路徑 home
="markdown" for file in `ls $home/` do # 根據文件名創建文件夾並移動文件 dotNum=`echo $file|grep -o "\."|wc -l` extension="" fileName="" path="" if [ $dotNum -eq 0 ] then extension="" fileName=$file path="" elif [ $dotNum -eq 1 ] then extension=${file##*.} fileName=${file%.*} path="" else extension=${file##*.} wholeName=${file%.*} fileName=${wholeName##*.} path=${wholeName%.*} fi path="${path//.//}" # echo "路徑=$path 文件名=$fileName 后綴名=${extension}" CreateDir $path "$home/" if [ -n "$path" ] then MoveFile "$home/$file" "$home/$path/$fileName.$extension" fi done } #調用入口 main $*

 

保存為xxx.sh文件,在命令行里敲sh xxx.sh就行了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM