find . -type f -name '*.c' -exec cat {} \; | sed '/^\s*#/d;/^\s*$/d;/^\s*\/\//d' | wc -l
誰でもその意味を説明できますか?
ベストアンサー1
説明する:
find . -type f -name '*.c'
.c
- 名前と拡張子に記号が含まれている現在のディレクトリ内のすべてのファイルを繰り返し検索します。よりman find
-exec cat {} \;
- 前の手順で見つけたファイルの内容を取得します。 -exec構文を参照してください。-exec command {} +
sed '/^\s*#/d;/^\s*$/d;/^\s*///d'
- さまざまな種類の「コメント」(または同様のコンテンツ)を削除します。このセクションは3つの部分で構成されています;
。
/^\s*#/d
- 行の始まり(^
)、0、1以上のスペース(\s*
)、および#
記号。//d
- 一致する文字列を削除します。/^\s*$/d
- 空白行。前のセクションと同じですが、$
行末を表す記号があります/^\s*\/\//d
- 前に 0,1 以上の空白がある 2 つのスラッシュ (\/\/
, - 引用スラッシュのためのバックスラッシュ) がある行と一致します。\
wc -l
- コード行数の計算