63

ファイルの各行の先頭に数字を追加するにはどうすればよいですか?

例えば:

これは
テキスト
ファイルから。

なります:

000000001 これは
000000002 テキスト
ファイルからの000000003。
4

7 に答える 7

121

それを行うように設計されていない cat やその他のツールを使用しないでください。プログラムを使用します。

nl - ファイルの行数

例:

$ nl --number-format=rz --number-width=9 foobar
$ nl -n rz -w 9 foobar # short-hand

nlはそのために作られているので;-)

于 2011-11-21T01:38:02.570 に答える
36

AWK のprintfを使用するNR$0、書式設定を正確かつ柔軟に制御できます。

~ $ awk '{printf("%010d %s\n", NR, $0)}' example.txt
0000000001 This is
0000000002 the text
0000000003 from the file.
于 2011-11-21T01:38:50.187 に答える
32

コマンドを探していますnl(1)

$ nl -nrz -w9  /etc/passwd
000000001   root:x:0:0:root:/root:/bin/bash
000000002   daemon:x:1:1:daemon:/usr/sbin:/bin/sh
000000003   bin:x:2:2:bin:/bin:/bin/sh
...

-w99 桁の数字を要求します。-nrzゼロパディングで右寄せされた数値をフォーマットするように要求します。

于 2011-11-21T01:38:29.030 に答える
17

cat -n thefileわずかに異なる形式の数字ではありますが、仕事をします。

于 2011-11-21T01:36:50.513 に答える
8

最も簡単で簡単なオプションは

awk '{print NR,$0}' file

nl が実際に最適なオプションではない理由については、上記のコメントを参照してください。

于 2016-03-21T15:14:35.120 に答える
4
perl -pe 'printf "%09u ", $.' -- example.txt
于 2011-11-21T15:06:56.293 に答える