Re: コマンドラインで連番のファイル名を作る
$ 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
$ i=1; limit=13; while [ $i -le $limit ]; do j=$(printf "%03d" $i); echo access_log.200801$j; i=$(($i+1)); done
お二方のやりかたでまったく問題はないと思いますが、bashやzsh、kshであれば、算術forを使うのもアリかなと思いました。POSIX-shやBourne Shellでは使えませんが。
$ for ((i=1; i<=27; i++));do printf "access_log.200801%02d\n" $i;done
ちなみにseqかjotかという話を抜かすと、seqではこんな感じですね。
$ seq -f 'access_log.200801%02g' 1 27
修正2008-09-25: 自分のコードだけprintfまわりの冗長な部分を整理しました。どう見ても後出しジャンケンです、本当に(ry
追記2008-09-30: 言及やはてブで、zshでは「print -l access_log.200801{01..27}」でいけると教えていただきました。zshすげー。
コメント
コメントの投稿
トラックバック
http://emasaka.blog65.fc2.com/tb.php/454-c9bd6dcf
