如何在 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
- 表示序列的范围。在我们的例子中:从 3
到 5
替代 bash
echo data{3..5} | sed 's/ / : /g'
一种不使用外部程序的方法:
set -- {3..5} ; (($#>1)) && printf "%s:" "${@:1:$#-1 }" ; printf "%s\n" "${@: -1}"
请注意,这将覆盖位置参数。
我正在使用 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
- 表示序列的范围。在我们的例子中:从 3
到 5
替代 bash
echo data{3..5} | sed 's/ / : /g'
一种不使用外部程序的方法:
set -- {3..5} ; (($#>1)) && printf "%s:" "${@:1:$#-1 }" ; printf "%s\n" "${@: -1}"
请注意,这将覆盖位置参数。