はじめに

多量の行が表示されないように、このブログは1コンテンツしか表示されない。ブログアーカイブから、他の記事を捜してくれ。

環境作れし。
・gawk 3.1.5 for Windows をググッて入手。
・gawk.exeをpathの通ったフォルダにぶち込めし。
 (「windows パスを通す」ググッて)
 (面倒なら、C:\windowsにぶち込む)
・環境変数「awkpath」にスクリプトを保存するフォルダを設定。
 (「環境変数 設定 windows」ググッて)
 (面倒なら、C:\windowsに、紹介されているスクリプトぶち込む)

2013年10月28日月曜日

重複ファイル検索 awk script

指定したパス、もしくはコマンドを実行したカレントパスを階層の基点にして、全フォルダから重複ファイルを検索するスクリプト。
/name /tm /sizeいずれも指定しないと/nameで検索する。

…って、ある意味大作だぞ。

usage:same [/tiny][/tm][/name][/size][/fl <filter regalexp filename>][/fp <filter regalexp fullpath>][/v <avoid fullpath regalexp pattane>] [<path>]
      /tiny 検索結果にタイムスタンプ、サイズを表示しない
      /tm   タイムスタンプが同一のファイルを検索(アンド条件)
      /name ファイル名が同一のファイスを検索(アンド条件)
      /size サイズ名が同一のファイスを検索(アンド条件)
      /fl   ファイル名フィルタ(正規表現)
      /fp   フルパスファイル名フィルタ(正規表現)
      /v    フルパスファイル名除外フィルタ(正規表現)
ex. same /tiny /tm /size /fl "(doc|xls)$" /v "\\(tset|copy)\\" c:\release

c:\release以下のフォルダからdoc及びxlsで終わるファイル名を持つファイルに対し、
サイズ、タイムスタンプが一致するファイルを探しタイニーフォーマットで一覧表示
するが、フルパス中に"\test\"か"\copy\"を持つファイルは除外する。

AWKのつぼ

どこが大作かっつーと、アーギュメント(パラメタ)の処理だ。<path>以外はどんな順番で指定されようがされまいが解析するって所。
後は、まっとうに環境変数 TEMPを取り込んで、そこにワークファイルを作ってる所。
笑える所は、BEGIN処理だけで全処理が完了して、行処理節自体存在してない事だな。

same.bat


dir.awk


0 件のコメント:

コメントを投稿