Files

在達到一定大小後使用正確的文件副檔名將輸出拆分為多個文件

  • June 12, 2019

我用

make | tee >(split -d -b 10000000 - debug.log.0)

在達到 10MB 後將輸出拆分為多個調試文件。

這會產生名為 debug.log.000、debug.log.001、debug.log.002 的文件…

之後我可以重命名它們

for i in debug*; do echo $i; done

但是我怎樣才能重建命令,讓他們.log直接在每個文件的末尾得到結尾呢?

您可以使用選項為拆分文件選擇文件結尾--additional-suffix

make | tee >(split --additional-suffix=.log -d -b 10000000 - debug.0)
find . -maxdepth 1 -size +10M -exec du -shk {} \;| sed "s/\.\///g"|awk '$1 > 50 {print "split -l Specifylinenumber"  " " $2}'|sh


After above file whose size is greater than 10M will be splitted as xaa,xab,xac and so on

Use below command to get it renamed

f=1;for i in xa*; do  mv $i debug.log.00$f; f=$(($f+1)); done

引用自:https://unix.stackexchange.com/questions/524454