大量の動画ファイルをブルーレイ(片面25GB)に焼いていくけど、どれとどれを焼けば合計で25GBか?を考えるのが面倒。こういうのこそコンピュータにやらせる。
ーーー
毎行ごとにファイル容量の合計を出す
$ { for i in *{ts,mp4}; do ls -shal "$i" | awk '{a+=$1; print $1,$10}'; done;} | awk '{a+=$1;print $1,a,$2} END{print "----\n" a}'
拡張子がtsまたはmp4のファイルの一覧で、毎行ごとの合計を出してくれる。この例だと、最終行で合計が26.3GBになるからブルーレイをオーバーしちゃうのがわかる。最終行では合計も出る。
1列目には「G」が付いているのに、無視して合計してくれるawkすごい。
ーーー
for文を無くしてシンプルにする改良。
$ ls -shal *{ts,mp4} | awk '{a+=$1;print $1,a,$10} END{print "----\n" a}'