指定したディレクトリ以下に対してコマンドが発行できたらいいなぁ。**/*とかで実現できる気もするけどよくわからない。-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 オプションがなくても問題なし?

tags: sh zurazure

Posted by NI-Lab. (@nilab)