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

时间:2017-04-23 21:17:41

标签: bash sequence seq

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

data1 : data2 : data3 : data4 : data 5 : 

然而,我想让它开始我的选择而不是1而不是#34;:#34;最后的符号。例如:

data3 : data4 : data5

对此有任何单线解决方案吗?

提前致谢!

当前输出:

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

所需:

data3 : data4 : data5

3 个答案:

答案 0 :(得分:6)

使用以下方法:

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

输出:

data3 : data4 : data5

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

-s" : " - 项目分隔符

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

答案 1 :(得分:2)

替代bash

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

答案 2 :(得分:1)

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

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

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