
私はLinuxで3つの段落を含むテキストファイルを作成しました。ここで、ファイルの内容を表示しながら、結果に各段落の行番号を表示したいと思います。
私のファイルの内容は次のとおりです。
以下は、百科事典を閲覧するのに役立つコンテンツナビゲーションシステムです。検索の代替として使用されます。 以下は、百科事典を閲覧するのに役立つコンテンツナビゲーションシステムです。検索の代替として使用されます。 以下は、百科事典を閲覧するのに役立つコンテンツナビゲーションシステムです。検索の代替として使用されます。
これで、結果を次のように印刷したいと思います。
1以下は内容です...(最初の段落)
2次は...(2番目の段落)などです。
ファイルの各段落には行間隔があります。
また、上記のファイルの最後の段落のみを印刷するには、別のコマンドを使用する必要があります。
私はUbuntuを使用しています。
答え1
真珠、短絡モード -00
、入力行-p
と数字を含むカスタムプレフィックスを印刷します。
% (echo hi; echo; echo there) | perl -00 -pe 'print ++$x, " "'
最後の段落は
% (echo hi; echo; echo there) | perl -00 -ne '$l=$_; END { print $l }'
答え2
これを使用してawk
段落番号を追加できます。ファイルが呼び出されたと仮定すると、input
次のことができます。
awk 'BEGIN {para=1} !/^\s*$/ {printf "%d %s\n", para, $0; para+=1;next};1' input
これは、我々が見た段落数のカウンタを維持し、空でない行が現れるたびに現在のカウンタを前に追加し、カウンタをインクリメントします。
最後の段落を取得するには、末尾に不要な空白行がある可能性があると仮定して、awkを同様に使用できます。
awk '!/^\s*$/ {line=$0} END{print line}' input