文件中的行数

文件中的行数

所以我有一个text.txt 包含一些字符行的文件示例:

abc    
abc
yxz
abc

现在我想对这样的行进行编号并将其复制到另一个文件中。

最终预期结果:

1  abc
2  abc 
3  yxz
4  abc

答案1

Unix 上有许多用于对行进行编号的实用程序,但令人烦恼的是它们不这样做仅有的默认的基本编号。

nl file是(Unix/GNU,不是 POSIX)对文件行进行编号的命令,但默认情况下它仅对非空行进行编号,并默认处理特殊的页脚/页眉分隔符。要让它对所有行进行编号,您需要执行以下操作:

nl -ba -d '
' text.txt > newfile

(这是上面单引号内的换行符),但即使这不适用于某些nl实现

在 POSIX 命令中,我们还有pr

pr -tn5 text.txt > newfile
pr -t:n5 text.txt > newfile

尽管它会特别对待换页符。

awk '{printf "%5d %s\n", FNR, $0}' text.txt > newfile

应该没问题,并且可以让您按照您想要的方式格式化数字,例如您的预期产出

awk '{printf "%-2d %s\n", FNR, $0}' text.txt > newfile

还:

grep -n '^' text.txt > newfile

还有另一种不同的输出格式。

一些cat实现也支持-n这一点:

cat -n text.txt > newfile

答案2

我不确定你想要什么(因为你说你想要对文件进行排序,但你给出的输出与输入的顺序完全相同),但要枚举你可以使用的行nl

nl filename > outputfile

相关内容