頭を使ってキャラクターを見る

頭を使ってキャラクターを見る

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少しやりすぎかもしれませんが、キャリアの後半で長文になってしまったときに、あなたが書いたものをすべてカットするのは嫌です。もちろん、適宜調整してください。

関連情報