Djangoのカスタムタグを使用頻度順で出力するシェルスクリプト
新しく入ったデザイナーさんが
djangoのカスタムタグの仕様頻度ランキングが知りたいとのことなので
休み時間にシェルの勉強のつもりで
#!/bin/sh # 1つ目の引数にテンプレートのディレクトリとかのパス # 2つ目の引数に結果を出力するファイルパスを入れてください。 # set -x if [ $# -ne 2 ]; then echo 'require 2args:: tagrank ~/tmpl/dir ~/outputfile.txt' exit 1 fi # 変数定義 TMPL_ROOT_DIR=${1} OUTPUT_FILE=${2} _TMPFILE="./_tmp" # 結果ファイルとかを空に touch ${_TMPFILE} cp /dev/null ${_TMPFILE} touch ${OUTPUT_FILE} cp /dev/null ${OUTPUT_FILE} # .htmlな名前のファイルを集めてgrep for _path in $(find ${TMPL_ROOT_DIR} | perl -nwle '/\.html$/ and print;') do echo "grepping..." ${_path} perl -nwle '/\{%\s*([\w\d]+)/ and print $1;' ${_path} >> ${_TMPFILE} done # ソートして行数数えて、数えた行数でまたソートしてでもその前に整形して、、、 echo "sort & counting..." sort ${_TMPFILE} | \ uniq -c | \ perl -nwle 's/^/ / and print;' | \ perl -nwl -aF"\s+" -e 'print $F[1].",".$F[2];' | \ sort -t"," -rn \ > ${OUTPUT_FILE} rm ${_TMPFILE} # 結果が空だとエラー終了 if [ -s ${OUTPUT_FILE} ] then echo "OK! finished!" exit 0 else echo "oh! something wrong!" exit 1 fi
この本のおかげでawkもsedもgrepも全部perlでやってますね。
ミニマルPerl ―Unix/LinuxユーザのためのPerl習得法
- 作者: Tim Maher,安藤慶一,磯部孝一郎
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/06/21
- メディア: 大型本
- 購入: 4人 クリック: 166回
- この商品を含むブログ (25件) を見る