awk
特定ロケーション以下の全階層のファイル容量を計算する。
$ ls -lR ./<DIRECTORY_NAME> | awk 'BEGIN{cont=0}{cont = cont+$5}END{print cont}'
サンプル
$MacBook-Pro-16:~$ ls -lR ./torrent/ | head -3
total 2930888
-rw-r--r--@ 1 honomoto staff 35066797 12 8 2018 file001.zip
drwx------ 36 honomoto staff 1152 12 8 2018 file002.zip
MacBook-Pro-16:~$ ls -lR ./torrent/ | head -3 |awk 'BEGIN{cont=0}{cont = cont+$5}END{print cont}'
35067949
35066797+1152=35067949 が出力される。
ファイル名を一括変更する
以下に示すようなファイル名を規則に基づいて一括変更する。規則はファイル名に含まれるシーケンス番号をゼロパディング3桁に変換するものとする。
深夜食堂 第02巻 (1).jpg
深夜食堂 第02巻 (10).jpg
深夜食堂 第02巻 (100).jpg
深夜食堂 第02巻 (101).jpg
したがって上記のファイル名は001.jpg, 010.jpg, 100.jpg, 101.jpg に変換される。
awk スクリプトを用意する。
ls | gawk -F "\\\(|\\\)" '{printf "mv \"%s\" %003d.jpg\n",$0, $2}' > work
区切り文字には(、)を使用する。エスケープシーケンスを忘れないこと。結果は以下の通り。
mv "深夜食堂 第02巻 (1).jpg" 001.jpg
mv "深夜食堂 第02巻 (10).jpg" 010.jpg
mv "深夜食堂 第02巻 (100).jpg" 100.jpg