7時のニュースを録画したtsファイルがある。
$ ls -shal | grep 7PM
これのファイルサイズ(1列目)を合計したい。awkを使う。
まずは1列目を取り出す。フィールドの区切り(Field Separater)に文字「G」を指定して1つめの変数($1)だけ取り出せば良い。
$ ls -shal | grep 7PM | awk -FG '{print $1}'
1行だけ変なのがある。サイズが 720M なので、フィールド区切りされなかったようだ。その行だけ無視する。
$ ls -shal | grep 7PM | awk -FG '{print $1}' | grep -v M
あとは各行を合計して変数aに++していき、最終行に合計サイズaを出力する。awkのシングルクオーテーションの開始終了に注意。
$ ls -shal | grep 7PM | awk -FG '{print $1}' | grep -v M | awk '{a=+$1;print $1} END{print "-----¥n" a}'
超便利。Linuxほんと最高。