特定のサイズに達し、ファイル拡張子が正しい場合は、出力を複数のファイルに分割します。

特定のサイズに達し、ファイル拡張子が正しい場合は、出力を複数のファイルに分割します。

私は使う

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

関連情報