脚本 - 数字线

脚本 - 数字线

我想制作一个脚本,它允许用户输入一些文本,它将输出具有行数的相同文本。

例子:

输入:

Hi Jack,
how are you?

输出:

0001: Hi Jack,
0002: how are you?

答案1

一个简单的解决方案read

I=0; while read -r; do ((I++)); echo "$I: $REPLY"; done< test.txt;

您可以在其中将 test.txt 更改为脚本参数。

如果你不想使用 bash 变量REPLY

I=0; while read -r LINE; do ((I++)); echo "$I: $LINE"; done< test.txt;

或者其他东西来代替“LINE”

答案2

您可以通过管道输出nl

例子

ls /etc | head | nl --number-separator=$':\t' --number-format=rz --number-width=4
0001:   alternatives
0002:   bash.bash_logout
0003:   bash.bashrc
0004:   bash_completion.d
0005:   csh.cshrc
0006:   csh.login
0007:   dbus-1
0008:   defaults
0009:   drirc
0010:   fonts

如果您希望冒号 ( :) 和输入文本之间仅分隔一个空格,请将 --number-separator 参数从 更改$':\t'': '

相关内容