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

いいなと思ったら応援しよう!