Scripting 設計 小考 D


(第一部分: 約佔 24 分) 這個資料檔 qD.txt 是用 unzip -v xxx.zip 指令查看一個壓縮檔內容的結果。 請分析這個資料檔, 分別統計:

  1. 有多少筆記錄採取直接存入的方式, 並未壓縮 (標示 Stored)
  2. 最高層的每個子目錄底下, 分別加總所有 .shtml 檔案的大小 (Size 欄位, 壓縮後的大小)
     penguin:~> ./qD < qD.txt
        37 stored files

        246216 a
         24748 c
           409 common
          1195 dl
          4339 freeduc
          3698 i
         20641 l
           422 netiquette
         20623 olbook
          2787 p
          4473 published
           818 resource
         11658 s
         20562 z

提示:

  1. 一次寫一點; 加一小個功能就測試一下; 無妨多印一些中間計算過程/除錯資訊。
  2. 如果要搜尋的字串裡面含有 . 應寫成 \. 若含有 / 應寫成 \/
  3. 不需要排序。 不過要排序也很簡單: 用 sort 函數。
  4. 印出來的數字不需要對齊。 不過要對齊也很簡單: printf "%6d ...", 數字;

(第二部分: 約佔 6 分) 再將 "Stored" 的檔案, 分為 png 檔與其他檔兩類, 分別統計各有多少個檔案。 也就是將第一句輸出改成:

     penguin:~> ./qD < qD.txt
        37 stored files (33 png, 4 others)

注意: 這些功能是累積上來的, 也就是說最後只交一個完整的程式。