我通常这样做
$ wc questions
33 36 3105 questions
$ seq 1 33 > nums
$ paste nums questions
1 Content
2 ...
.
.
33 End Content
但我觉得可以有更快的方法来做到这一点,而无需使用难看的虚拟文件。使用一些基本的 *ix 工具怎么样?有更简单的方法吗?我使用 Vim,所以我对基于 Vim 的解决方案也很满意,但简单的基于 UNIX 的解决方案也可以工作(实际上在某些情况下可能更好,我总是可以在编辑器中生成)。
下面是一般情况。
输入
A
B
C
.
.
X
输出
1. A
2. B
3. C
.
.
N. X
答案1
这正是nl
目的。例如,假设file.txt
包含您的示例输入,并且您希望它看起来像您的示例输出,您可以这样做:
nl -nln '-s. ' file.txt
的联机帮助页nl
更详细地介绍了它的使用。它使您可以对输出格式进行很多控制。
答案2
我很惊讶cat -n
现在还没有被提及。
答案3
为了这个列表的完整性,sed
还可以这样做:
sed '=' questions | sed 'N;s/\n/. /'
遗憾的是=
命令印刷行号在单独的行上,因此只有单独的sed
调用才能美化格式。
答案4
不确定您对数字和数据之间的分离有何限制,但我会这样做:grep -n '^' questions
。那会输出:
1:Content
2:...
33:End Content