2008/09/25(Thu)
Perl で連番のファイル名を作る
seq とか jot とか、どっちがどっちか覚えられないし、 "001.txt" "002.txt" みたいに頭にゼロをつけることができるかどうかもよくわからないので Perl でやったほうが楽だ。
シェルの for in ループと組み合わせると、「デイリーでロテートしてる apache のログファイルを 2008年1月1日から2008年1月27日ぶんまで削除する」とか「mysql の binlog を今書き込んでるファイルとそれより一つだけ古いファイルを除いて全部 gzip 圧縮する」とかが一発でできる。
$ for i in `perl -e 'printf("%0.2d\n", $_) for (1..27)'` ; do rm -f /usr/local/apache/logs/old/access_log.200801$i*.gz ; done
$ for i in `perl -e 'printf("%0.2d\n", $_) for (1 .. 13)'` ; do gzip /usr/local/mysql/var/mysql-bin.$i ; done
追記
半袖さんと emasaka さんからトラックバックをもらった。ありがとうございます。 printf コマンドに算術 for か、どちらも知りませんでした。コマン道は面白いなあ。
トラックバック - http://d.hatena.ne.jp/a666666/20080925/1222329844
リンク元
- 80 http://www.google.co.jp/search?q=queryperf&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja-JP:unofficial&client=firefox-a
- 66 http://blog.hansode.org/archives/51743808.html
- 61 http://www.google.co.jp/search?q=queryperf&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 54 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADBF_jaJP272JP273&q=perl+rssフィード+作る
- 41 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=CKL&q=perl+連番&btnG=検索&lr=lang_ja
- 39 http://www.google.co.jp/url?sa=t&rct=j&q=queryperf&source=web&cd=3&ved=0CDIQFjAC&url=http://d.hatena.ne.jp/a666666/20080925/1222333406&ei=MOKmTurwAePkmAW0xoGzDw&usg=AFQjCNHQPmQSWniXeSSKE3c81c9fKpqwJQ
- 35 http://search.yahoo.co.jp/search?p=queryperf&search.x=1&fr=top_ga1&tid=top_ga1&ei=UTF-8
- 34 http://www.google.co.jp/hws/search?hl=ja&q=queryperf&client=fenrir&adsafe=off&safe=off&lr=lang_ja
- 29 http://d.hatena.ne.jp/notify-NotifyUser_POST_NG_CATEGORY?aHR0cDovL2QuaGF0ZW5hLm5lLmpwL2E2NjY2NjYvMjAwODA5MjUvMTIyMjMzMzQwNg==
- 28 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=perl+ファイル名+連番&num=50
