1

我尝试了这种方法,但它在新行的开头显示了一个不需要的空格:

$ echo -e {1..5}"\n"  
1  
 2  
 3  
 4  
 5  
4

5 回答 5

3

如果你只想输出一个数字列表,seq是一个专用的工具-

$ seq 1 5 
1
2
3
4
5
于 2016-12-04T13:15:42.163 回答
1

大括号扩展创建一个以空格分隔的字符串列表。在您的示例中,这意味着您得到1\n 2\n 3\n 4\n 5\n,它解释了每个换行符后的空格。

要获得对输出格式的更多控制,您可以使用循环:

for i in {1..5}; do echo $i; done
于 2016-12-04T11:53:16.887 回答
1

尽可能接近您最初的问题,您可以通过管道传输到 sed。这只是摆脱了那些“不需要的空间”。

echo -e {1..5}'\n' | sed 's/ //g'

在这种情况下 sed 的一般语法:sed 's/REGEXP/REPLACEMENT/FLAGS'其中 's' = 替换和 '/' = 分隔符

于 2018-06-05T18:41:13.187 回答
0

只需在左大括号前加一个退格键,如下所示: echo - e \\b{1..5}\\n

于 2019-03-23T20:13:00.113 回答
0

您可以通过管道将输出tr简单地转换为换行符:

$ echo {1..5} | tr ' ' '\n'
1
2
3
4
5
于 2020-09-21T06:07:32.743 回答