min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash 複数の録画tsファイルのサイズをawkで合計する

7時のニュースを録画したtsファイルがある。

$ ls -shal | grep 7PM

f:id:min117:20180415025254p:plain

これのファイルサイズ(1列目)を合計したい。awkを使う。

まずは1列目を取り出す。フィールドの区切り(Field Separater)に文字「G」を指定して1つめの変数($1)だけ取り出せば良い。

f:id:min117:20180415025907p:plain

$ ls -shal | grep 7PM | awk -FG '{print $1}'

f:id:min117:20180415030050p:plain

1行だけ変なのがある。サイズが 720M なので、フィールド区切りされなかったようだ。その行だけ無視する。

$ ls -shal | grep 7PM | awk -FG '{print $1}' | grep -v M

f:id:min117:20180415030327p:plain

あとは各行を合計して変数aに++していき最終行に合計サイズaを出力する。awkのシングルクオーテーションの開始終了に注意。

$ ls -shal | grep 7PM | awk -FG '{print $1}' | grep -v M | awk '{a=+$1;print $1} END{print "-----¥n" a}'

f:id:min117:20180415031345p:plain

超便利。Linuxほんと最高。

min117.hatenablog.com