我通常这样做
$ wc questions
33 36 3105 questions
$ seq 1 33 > nums
$ paste nums questions
1 Content
2 ...
.
.
33 End Content
Run Code Online (Sandbox Code Playgroud)
但我觉得可以有更快的方法来做到这一点,没有看起来很糟糕的虚拟文件。如何使用一些基本的 *ix -tool?有什么更简单的方法吗?我使用 Vim,所以我对基于 Vim 的解决方案也很满意,但简单的基于 unix 的解决方案也有效(实际上在某些情况下可能更好,我总是可以在编辑器中生成)。
下面是一般情况。
输入
A
B
C
.
.
X
Run Code Online (Sandbox Code Playgroud)
输出
1. A
2. B
3. C
.
.
N. X
Run Code Online (Sandbox Code Playgroud)
Jam*_*ger 17
这正是nl它的目的。例如,假设file.txt包含您的样本输入,并且您希望它看起来像您的样本输出,您可以执行以下操作:
nl -nln '-s. ' file.txt
Run Code Online (Sandbox Code Playgroud)
的联机帮助页nl更详细地介绍了它的使用。它使您可以对输出格式进行很多控制。
只是为了这个列表的完整性,sed也可以这样做:
sed '=' questions | sed 'N;s/\n/. /'
Run Code Online (Sandbox Code Playgroud)
遗憾的是,该=命令将行号打印在单独的行上,因此只有单独的sed调用才能美化格式。