【问题标题】:how to create a list of words using seq in bash如何在 bash 中使用 seq 创建单词列表
【发布时间】:2017-04-23 21:17:41
【问题描述】:

我正在使用 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

【问题讨论】:

    标签: bash sequence seq


    【解决方案1】:

    使用以下方法:

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

    输出:

    data3 : data4 : data5
    

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

    -s" : " - 项目分隔符

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

    【讨论】:

      【解决方案2】:

      bash 的替代方案

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-02-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-17
          相关资源
          最近更新 更多