C ソース ファイルがいくつかあり、その多くには先頭に 1 行のコメントが 1 つあり、プログラムの動作を簡単に説明しています (1 段落分に相当するほど複雑なことはしていません)。最初の#
が最初のプリプロセッサ ディレクティブになるので、head を使用して最初の まで表示できるかどうか疑問に思っていました。行番号が印刷されれば、それもボーナスになります。
答え1
おそらく、コンテキストスイッチを使用した Grep の方が優れた解決策でしょう-B
。
grep -B999 -m 1 "^#" file.c
または、長いオプション名の場合:
grep --before-context 999 --max-count 1 "^#" file.c
これはパターン"^#"
(行の先頭に固定された「#」)を見つけ、最大999行を表示します。前に見つかった「^#」の最大数は 1 です。
つまり、基本的には、最初の「^#」を見つけて、その前の 999 行までを表示して終了します。見つかった「^#」を削除するには、head にパイプする必要があります。
grep -B999 -m1 "^#" file.c | head -n -1
最後の行が切り取られます。
確かにそれは-B999
少しやりすぎかもしれませんが、キャリアの後半で長文になってしまったときに、あなたが書いたものをすべてカットするのは嫌です。もちろん、適宜調整してください。