私のテキストは次のとおりです
Hi
Bye
Nope
Sorry
Cya
Chill
どうすればいいですか?
[1] Hi
[2] Bye
[3] Nope
など?
答え1
nl
("Number Line") ユーティリティは次のことを行います。
$ cat file
Hi
Bye
Nope
Sorry
Cya
Chill
$ nl file
1 Hi
2 Bye
3 Nope
4 Sorry
5 Cya
6 Chill
nl
試してみるにはいくつかのオプションがあります。ページ番号付けなども行えます。
一部の実装では、cat
行番号付けもサポートしています。
$ cat -n file
1 Hi
2 Bye
3
4 Nope
5 Sorry
6
7 Cya
8 Chill
そしてawk
:
$ awk '{ print NR, $0 }' file
1 Hi
2 Bye
3
4 Nope
5 Sorry
6
7 Cya
8 Chill
または空白行に番号を付けたくない場合:
$ awk '$0 { print ++nr, $0; next } { print }' file
1 Hi
2 Bye
3 Nope
4 Sorry
5 Cya
6 Chill
以下を使用してawk
特殊なフォーマットを簡単に実行することもできます。
$ awk -vOFS="\t" '$0 { print "[" ++nr "]", $0; next } { print }' file
[1] Hi
[2] Bye
[3] Nope
[4] Sorry
[5] Cya
[6] Chill
または...
$ awk -vOFS=":\t" '$0 { printf("[%03d]%s%s\n", ++nr, OFS, $0); next } { print }' file
[001]: Hi
[002]: Bye
[003]: Nope
[004]: Sorry
[005]: Cya
[006]: Chill
paste
マニュアルから(OpenBSD):
$ sed '=' file | paste -s -d '\t\n' - -
1 Hi
2 Bye
3
4 Nope
5 Sorry
6
7 Cya
8 Chill
答え2
awk '{printf "%s.\t%s\n",NR,$0}' file
または、このコマンドを使用することもできますnl
。そのように:
cat /path/to/file | nl > /path/to/output