1. 程式人生 > >解壓檔案和合並大量小檔案的shell指令碼

解壓檔案和合並大量小檔案的shell指令碼

指令碼檔名為unzip-batch.sh

#批量解壓壓縮檔案,將檔案解壓到指定目錄
#!/bin/bash
for zipfilenamefull in `ls ./*.zip`
do 
    #echo "$zipfilename"
    zipfilename=`basename $zipfilenamefull`
    filename=$(basename $zipfilename .zip)
    echo "$filename"
    unzip $zipfilename -d $filename
done

################################################################

 指令碼檔名為file-merge.sh

#先檢查是否存在txtfile目錄,若不存在,則建立
#由於當前目錄小檔案數目巨大,若用ls 命令時出現argument list too long錯誤
#所以利用find 命令,將當前小檔案合併成一個大檔案 
#!/bin/bash
if [ ! -d txtfile ];then
    mkdir txtfile
fi
for catalognamefull in ` ls -l |grep '^d'|awk '{print $9}'`
do 
    #echo $catalognamefull
    echo " find ./$catalognamefull -type f -name '*.txt' -exec cat {} \; >./txtfile/$catalognamefull.txt"
    find ./$catalognamefull -type f -name '*.txt' -exec cat {} \; > ./txtfile/$catalognamefull.txt
done