該腳本適用於需要合併的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