我正在使用 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
答案 0 :(得分:6)
使用以下方法:
start=3; seq -s" : " -f "data%g" $start 5
输出:
data3 : data4 : data5
start=3
- 包含起始索引的自定义变量
-s" : "
- 项目分隔符
$start 5
- 表示序列的范围。在我们的案例中:从3
到5
答案 1 :(得分:2)
替代bash
echo data{3..5} | sed 's/ / : /g'
答案 2 :(得分:1)
一种不使用外部程序的方法:
set -- {3..5} ; (($#>1)) && printf "%s:" "${@:1:$#-1 }" ; printf "%s\n" "${@: -1}"
请注意,这将覆盖位置参数。