我的文字是:
Hi
Bye
Nope
Sorry
Cya
Chill
我怎样才能做到:
[1] Hi
[2] Bye
[3] Nope
等等等等?
答案1
nl
(“数字线”)实用程序执行以下操作:
$ 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