ファイルの各行の先頭に数字を追加するにはどうすればよいですか?
例えば:
これは テキスト ファイルから。
なります:
000000001 これは 000000002 テキスト ファイルからの000000003。
ファイルの各行の先頭に数字を追加するにはどうすればよいですか?
例えば:
これは テキスト ファイルから。
なります:
000000001 これは 000000002 テキスト ファイルからの000000003。
それを行うように設計されていない cat やその他のツールを使用しないでください。プログラムを使用します。
nl - ファイルの行数
例:
$ nl --number-format=rz --number-width=9 foobar
$ nl -n rz -w 9 foobar # short-hand
nlはそのために作られているので;-)
AWK のprintfを使用するNR
と$0
、書式設定を正確かつ柔軟に制御できます。
~ $ awk '{printf("%010d %s\n", NR, $0)}' example.txt
0000000001 This is
0000000002 the text
0000000003 from the file.
コマンドを探しています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
...
-w9
9 桁の数字を要求します。-nrz
ゼロパディングで右寄せされた数値をフォーマットするように要求します。
cat -n thefile
わずかに異なる形式の数字ではありますが、仕事をします。
最も簡単で簡単なオプションは
awk '{print NR,$0}' file
nl が実際に最適なオプションではない理由については、上記のコメントを参照してください。
perl -pe 'printf "%09u ", $.' -- example.txt