暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux 中的 seq 命令

TIAP 2022-09-18
2256

seq 命令是 sequence 的缩写,用于打印数字序列。数字可以是整数或者实数(带小数点)。

我们今天通过几个例子来看一下如何使用这个命令。

使用 seq 命令

在不带任何选项的情况下,使用 seq 可以生成3中不同格式的数字序列。

打印数字序列直到某一上限

最简单的例子,我们为 seq 指定一个上限,它将打印从 1 开始到我们指定的这个上限之间的数字序列。命令格式如下:
    seq n
    以下是一个例子:
      $ seq 4
      1
      2
      3
      4

      打印两个数字之间的数字序列(指定上限和下限)

      我们指定两个数字,它将打印这两个数字之间的数字序列(两个数字之间的升序排列)。命令格式如下:
        seq n1 n2
        如下是一个简单的例子:
          $ seq 3 6
          3
          4
          5
          6

          指定限值与步长(增量)

          我们上述所有粒子中,数字序列中的增量为1,也可以自定义增量。命令格式如下:
            seq n1 inc n2
            其中的增量值(步长)可以是整数也可以是小数。看如下例子:
              $ seq 3 0.5 6
              3.0
              3.5
              4.0
              4.5
              5.0
              5.5
              6.0

              那么,如果我们指定的步长为0.7会怎么样呢?这种情况下,其数字序列不会大于上限值:
                $ seq 3 0.7 6
                3.0
                3.7
                4.4
                5.1
                5.8

                打印递减序列

                另一个用法是可以打印递减序列,为此,需要指定一个负的增量值,看下面的例子:
                  $ seq 6 -1 4
                  6
                  5
                  4

                  以上例子都是不带任何选项的使用方法,下面我们介绍几种带选项的用法。

                  打印相同格式(数字位数)的序列

                  选项 -w 可以让打印的数字序列保持相同的格式(数字位数)。如下例子:
                    $ seq -w 9 11
                    09
                    10
                    11

                    以特定格式打印序列

                    使用 选项 -f 可以指定序列的格式,让其格式化输出:
                      $ seq -f '##%g##' 3 5
                      ##3##
                      ##4##
                      ##5##

                      上述命令中 %g 表示打印默认数字。另外,%e 表示以指数方式显示数字,%f 表示以浮点数方式显示。

                      以字符串作为分隔符的打印序列

                      seq 命令打印的序列中的每一个数字之间其实是有分隔符的,默认情况下,分隔符为换行符,所以上面的例子总是换行打印下一个数字。我们可以使用 -s 选项来指定分隔符。看下面的例子:
                        $ seq -s ':' 4
                        1:2:3:4

                        上述命令中用于分隔符上面的引号不是必须的,但作为一个好习惯,也为了让命令看起来更好理解,我们一般都使用这个引号。

                        seq 命令的实际应用

                        上面我们介绍的例子,看起来像是一些在学习某编程语言中的练习,那么,seq 有什么实际的用途呢?实际上,我们在很多情况下都有可能会用到它。

                        比如,bash 中的 for 循环就可以使用 seq 命令,这样就可以不必在循环条件中手动指定序列了。看下面的例子:

                          #!/bin/bash


                          for i in $(seq 4 2 18)
                          do
                          echo "Number $i"
                          done

                          我们将上述 bash 脚本放到一个名为 seq.sh 的文件中,运行该文件,它将执行循环打印,如下:
                            $ bash seq.sh
                            Number 4
                            Number 6
                            Number 8
                            Number 10
                            Number 12
                            Number 14
                            Number 16
                            Number 18

                            以上就是关于 seq 命令的主要用法,大家感兴趣可以参考 man 手册来查看它更多详细的信息。


                            文章转载自TIAP,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                            评论