インデックス行に連続した数字を簡潔でエレガントに追加します。

インデックス行に連続した数字を簡潔でエレガントに追加します。

私は通常そうする

$ wc questions
  33   36 3105 questions
$ seq 1 33 > nums
$ paste nums questions
1       Content
2       ...
.
.
33      End Content

しかし、見苦しいダミーファイルを使わずにこれを行うより速い方法があるかもしれません。基本的な*ixツールを使うのはどうですか?より簡単な方法がありますか?私はVimを使用しているので、Vimベースのソリューションにも満足していますが、単純なUNIXベースのソリューションも動作します(実際には場合によってはより良いかもしれません。いつでもエディタで構築できます)。

以下は一般的な条件です。

入力する

A
B
C
.
.
X

出力

1. A
2. B
3. C
.
.
N. X

答え1

これがまさにnl目的です。たとえば、file.txtサンプル入力が含まれていて、サンプル出力のように見えるようにするには、次のようにします。

nl -nln '-s. ' file.txt

マンページでは、nl使用法の詳細を提供します。出力形式をさまざまに制御できます。

答え2

cat -nこれまで言及されていないことは驚くべきことです。

答え3

このリストの完成度のために、sed次のこともできます。

sed '=' questions | sed 'N;s/\n/. /'

残念ながら=、注文は印刷行番号は別々の行にあるので、別の呼び出しだけで書式を美しくすることsedができます。

答え4

数値とデータの分離にどのような制限があるのか​​わかりませんが、次のようにしますgrep -n '^' questions。これにより、以下が出力されます。

1:Content
2:...


33:End Content

関連情報