すべてのCコメントを別々のテキストファイルとして印刷したいと思います。
- awk、sed、grep、またはbashを使用してください。
- /* ... */(含む) の間にある複数行の C コメントをすべて出力します。
- //コメントを含む出力ライン
- オプション:行番号の印刷
この解決策を試しましたが、Ubuntuでは機能しません
- Cスタイルの複数行コメントの解析
- https://stackoverflow.com/questions/57723357/how-can-i-grep-matching-a-comment-string
私が要求した目的は、ソースコードのコメントを良い文書化の出発点としてすばやく使用できるようにすることです。私は専用のドキュメントプログラム(Doxygenなど)の複雑で排他的な組み込みコマンドが好きではありません。たとえば、各ソースコード関数に適切に注釈を付け、表面的なコメント行を削除すると、多くの時間が節約され、ほぼ完全な参照が提供されます。これはまた、より良いソースコードコメントを奨励するでしょう。
ベストアンサー1
shell-magicを使用すると、すでに多くの答えがありますが、すでに持っているツールを使用すると簡単にできると思います。つまり、GCCです。
diff -u <(gcc -fpreprocessed -dD -E main.c) main.c | grep '^+' | cut -c 2-
どのように動作しますか?
gcc -fpreprocessed -dD -E main.c
ファイルからすべてのコメントを削除し、標準出力に入れます。diff -u <(...) main.c
stdoutから入力を受け取り、元のデータと比較するgrep '^+'
で始まるすべての行をフィルタリングします+
。つまり、以前に識別されたコメントをフィルタリングします。cut -c 2-
+
出力からシンボルを削除
非常に複雑な正規表現、Perl、または awk エントリは必要なく、他の回答で見逃した可能性があるすべての極端なケースも含まれます。