shell腳本合併大量文本文件到一個文件

該腳本適用於需要合併的txt文件就在當前目錄,而不是當前目錄的下級目錄,且TXT文件名稱是按照數字命名,腳本會移動源文件到/tmp目錄

#!/bin/bash
#創建備份文件路徑
BAK_DIR="/tmp/txt-bak-`date '+%F'`"
mkdir "$BAK_DIR"
touch tmp.log
#查找當前路徑下所有後綴名爲.txt的文件並統計數量
FILE_COUNT=`find . -type f -name "*.txt"  |wc -l`

#判斷當前路徑下是否還有超過10個txt文件需要合併
while [ $FILE_COUNT -gt 10 ]
do
    #查找當前路徑下所有後綴名爲.txt的文件並排序,取出前10個文件名
    for i in `find . -type f -name "*.txt" |awk -F/ '{print $2}'| sort -h |head -10`
    do 
        #合併10個文件
        cat tmp.log $i >>final.log
        #移動已合併文件
        mv $i  $BAK_DIR/
    done
    #重新統計當前目錄下txt文件數量
    FILE_COUNT=`find . -type f -name "*.txt"  |wc -l`
done
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章