简洁优雅地向索引行添加连续数字

简洁优雅地向索引行添加连续数字

我通常这样做

$ 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

相关内容