我想制作一个脚本,它允许用户输入一些文本,它将输出具有行数的相同文本。
例子:
输入:
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'
为': '
。