行を読み出し、行と行番号を出力するシェルプログラム

行を読み出し、行と行番号を出力するシェルプログラム

ファイルから行を読み取り、stdin行番号を使用して行を書き込むプログラムを作成する必要があります。stdout私はそれを使用できませんcat -n

テキストファイルに次の内容があるとします。

 abcdef
 ghi

 klm
 nopqr st

デフォルトでは、行を読み取って行を出力する必要がありますが、行番号も含まれます。

これは私の間の読み取りループですが、すべての行を印刷するわけではありません。

while read line
do
    awk '{print NR, $0}'

done < file

デフォルトでは、出力は次のようになります。

1 ghi
2 
3 klm
4 nopqr   st

何らかの理由でabcdef何も表示されず、数字2は空白にできません。

ベストアンサー1

試してみましたか?nl -b a <file_name>

debian@virt00:~/test$ nl -b a file
     1  abcdef
     2   ghi
     3
     4   klm
     5   nopqr st
debian@virt00:~/test$
  • nl は垂直線を表します。
  • -b テキスト番号フラグ
  • 「a」はすべての行を表します。

より多くの情報を知りたい場合http://linux.die.net/man/1/nl

おすすめ記事