如何使用带换行符的大括号扩展

How to use brace expansion with newline

我试过这个方法,但它在新行的开头显示了不需要的 space:

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

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

要更好地控制输出格式,您可以使用循环:

for i in {1..5}; do echo $i; done

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

$ seq 1 5 
1
2
3
4
5

尽可能接近您的原始问题,您可以通过管道转到 sed。这只是摆脱了那些 'unwanted spaces'.

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