我尝试了这种方法,但它在新行的开头显示了一个不需要的空格:
$ echo -e {1..5}"\n"
1
2
3
4
5
如果你只想输出一个数字列表,seq
是一个专用的工具-
$ seq 1 5
1
2
3
4
5
大括号扩展创建一个以空格分隔的字符串列表。在您的示例中,这意味着您得到1\n 2\n 3\n 4\n 5\n
,它解释了每个换行符后的空格。
要获得对输出格式的更多控制,您可以使用循环:
for i in {1..5}; do echo $i; done
尽可能接近您最初的问题,您可以通过管道传输到 sed。这只是摆脱了那些“不需要的空间”。
echo -e {1..5}'\n' | sed 's/ //g'
在这种情况下 sed 的一般语法:sed 's/REGEXP/REPLACEMENT/FLAGS'
其中 's' = 替换和 '/' = 分隔符
只需在左大括号前加一个退格键,如下所示:
echo - e \\b{1..5}\\n
您可以通过管道将输出tr
简单地转换为换行符:
$ echo {1..5} | tr ' ' '\n'
1
2
3
4
5