如何在 bash 中使用 seq 创建单词列表

how to create a list of words using seq in bash

我正在使用 seq -s " " -f " data%g :" 5 来创建

data1 : data2 : data3 : data4 : data 5 : 

但是,我希望它以我选择的数字而不是 1 开始,并且最后不要有“:”符号。例如这样的事情:

data3 : data4 : data5

是否有任何单行解决方案?

提前致谢!

当前输出:

seq -s " " -f " data%g :" 5
data1 : data2 : data3 : data4 : data 5 :

期望:

data3 : data4 : data5

使用以下方法:

start=3; seq -s" : " -f "data%g" $start 5

输出:

data3 : data4 : data5

start=3 - 包含起始索引的自定义变量

-s" : " - 项目分隔符

$start 5 - 表示序列的范围。在我们的例子中:从 35

替代 bash

echo data{3..5} | sed 's/ / : /g'

一种不使用外部程序的方法:

set -- {3..5} ; (($#>1)) && printf "%s:" "${@:1:$#-1 }" ; printf "%s\n" "${@: -1}"

请注意,这将覆盖位置参数。