指定したディレクトリ以下に対してコマンドが発行できたらいいなぁ。**/*とかで実現できる気もするけどよくわからない。-r オプションが存在しないコマンドって使いにくいなぁ。
以下は、指定したディレクトリ以下のファイルすべての行数を出力するスクリプト。Bourne Shell 使用。
#!/bin/sh
# if paramters are not exist,
# the START_POINT is set current directory.
if [ $# -eq 0 ]
then
START_POINT=.
else
START_POINT=$1
fi
echo $START_POINT
find $START_POINT | while read FILENAME
do
if [ -f $FILENAME ]
then
LINE=`cat $FILENAME | wc -l`
echo "$LINE $FILENAME"
else
echo "00000000 $FILENAME"
fi
done
コメント部分の英語が英語圏の人に通じるといいなぁ。英語勉強中。
横着プログラミング: 小粒なツールたちを見ると、whileでたくさんのファイルをひとつづつ処理することについて書いてある。while使いになれば -r オプションがなくても問題なし?
C言語の学習用に素数のリストを作成するプログラムを書いた。たぶん3年前。
数値が素数であるかチェックする方法: 対象数値未満の整数(1を除くすべて)で割り切れなければ素数。って、1001が素数であるかを調べるには最高で1000回の計算をしなければいけない……2 * 500 = 1000 だから 500 以上で割るプロセスは無駄になるし……効率がすばらしく悪い。
そこで、知人に教えを請うたところ「割り切れる数値にフラグを立てる」というアルゴリズムを紹介してくれた。対象の数値が素数であるかチェックするのではなく、素数でない数値にフラグを立てていく。この手法は知人のオリジナルだと思いこんでいたのだが……
久々にそんなことを調べていたら IDM | 素因数分解 | エラトステネスの篩い なるページを見つけた。先の手法は「エラトステネスの篩い」という「最も古典的な素数表作成アルゴリズム」であるらしい。数学っておもしろそうだなぁ。
_ ∩ ( '∀')彡 ゴッゴル! ゴッゴル! ( ⊂彡 | | し/⌒J
ヅラがずれたらエラいこっちゃ!
書き手: NI-Lab.