拡張子一覧を作る
サーバにはどんなファイルがある?
ファイルサーバにどんなファイルがどれだけ入ってるのか調べてくれ,と言われました.ちょっと考えたんですが,うまいやり方を思いつかなかったので地道に手作業で調べてみたのでその手順です.
準備
まずはファイルサーバをネットワークドライブとしてAdministrator権限で接続します.そのためには,
net use \\servername password /USER:Administrator@mydomain.foo.co.jp
として,サーバに管理者権限でログインしてからGUIでネットワークドライブ接続します.net useの使い方は"net use /?"で確認できますが大したことは書いてありません.次にネットワークドライブ毎にファイル名の一覧を作成します.
Z:\>dir /B /L /OE /S /-D > c:\Documents and Settings\daiba\デスクトップ\filenames.txt
これで準備できました.dirの使い方は"dir /?"で確認できます.何気なく使ってるコマンドでも色々とオプションがあってちょっとした驚きがありますね.ま,そんなことはおいといて,必要なのは解析です.普段はperlでさくっと調べるのですが,今回はluaでやってみました.
luaプログラム
始めてなのか久しぶりなのかわからないぐらい忘れていたので単純に書いてみました.行毎に正規表現で処理して,それをテーブルに挿入し内容を書き出しています.拡張子の数の多いものから出力するようなことも考えてみたんですが,面倒になったのでそれはexcelか何かでやることにしました.
io.input("filenames.txt") suffix = {} while true do line = io.read() if (line == nil) then break end for result in string.gmatch(line, "%.%w%w%w$") do suffix[result] = suffix[result] and (suffix[result] + 1) or 1 end end for key,value in pairs(suffix) do out = string.format("%4s %d",key,value) print(out) end
終わりに
luaはなかなか癖がある言語だけど,使いこなせれば面白そうです.nmapにも組み込まれているので,色んなチェックツールを書けそうです.