达到一定大小并具有正确的文件扩展名后,将输出拆分为多个文件

达到一定大小并具有正确的文件扩展名后,将输出拆分为多个文件

我用

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直接在每个文件的末尾获得结尾?

答案1

您可以使用以下选项选择分割文件的文件结尾--additional-suffix

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

答案2

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

相关内容