[vine-users:082001] Re: モジュール数のカウントコマンド

長南洋一 cyoichi @ maple.ocn.ne.jp
2012年 7月 16日 (月) 11:37:10 JST


長南です。

中司さんのメールより [vine-users:081999]
>
>> Cソースコードを対象にするのであれば,
>> ctags と wc とを組み合わせれば, 目的を達成できるかもしれません.
>> $ ctags -f - *.c  | grep $'\tf' | wc -l
>
> もう一つ、うまく行ってません。
> #define も一緒に検出されたりして、思い通りに行きません。

ctags というプログラムは、いくつかあるんですね。
Vine の ctags (by Darren Hiebert) ですが、関数の場合は、出力中の
タブで区切られた四番目のフィールドに f という字が入るようです。

ctags -f - *.c の出力をよく見て、grep なり awk なりのパターンを
工夫すれば、何とかなるのではないでしょうか。たとえば、

  $ ctags -f - *.c  | grep $'\tf'$

とか、

  $ ctags -f - *.c  | awk -F "\t" '$4=="f"'

とか。実際にはもっと工夫しなければならないかもしれませんが。

# grep $'\tf' という書き方を知りませんでした。bash の QUOTING なんですね。
# ちょっと man bash を引用すると、
#
#   Wrds of the form $'string' are treated specially.  The word expands to
#   string, with backslash-escaped characters replaced as specified by the
#   ANSI  C  standard. (中略) The expanded result is single-quoted, as if
#   the dollar sign  had  not been present.
#
# これは便利そうな機能です。

-- 
長南洋一


vine-users メーリングリストの案内