如何在Linux中使用 seq 命令打印具有指定增量或格式的数字序列?
seq 命令是 sequence 的缩写,用于打印数字序列,数字可以是整数或实数(带小数点)。
让我们看看如何通过一些示例来使用此命令。
使用 seq 命令
可以使用不带选项的 seq 来生成 3 种不同格式的数字序列。
打印数字序列直到上限
在最简单的形式中,为 seq 指定一个上限,它将打印从 1 到上限的序列。
seq n
- 1
这是一个例子:
wljslmz@lhb:~$ seq 4
1
2
3
4
- 1
- 2
- 3
- 4
- 5
两个数字之间的打印顺序(下限和上限)
可以按升序提供两个数字,它将打印从小数字到大数字的序列。
seq n1 n2
- 1
看看这个例子:
wljslmz@lhb:~$ seq 3 6
3
4
5
6
- 1
- 2
- 3
- 4
- 5
在限制之间但具有自定义增量的打印序列
到目前为止,序列中的增量为 1,但也可以在下限和上限之间定义自定义增量。
seq n1 inc n2
- 1
增量值可以是整数或十进制值。
wljslmz@lhb:~$ seq 3 0.5 6
3.0
3.5
4.0
4.5
5.0
5.5
6.0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
向后打印序列
另一个技巧是向后打印一个序列,为此,必须指定一个负增量。
wljslmz@lhb:~$ seq 6 -1 4
6
5
4
- 1
- 2
- 3
- 4
以上所有示例的屏幕截图:
当你输入 0.7 之类的东西时会发生什么?在这种情况下,不会超过上限。
wljslmz@lhb:~$ seq 3 0.7 6
3.0
3.7
4.4
5.1
5.8
- 1
- 2
- 3
- 4
- 5
- 6
到目前为止,还没有使用 seq 命令的任何选项,让我们看看并使用它们。
相同宽度的打印顺序
seq 命令的选项w用于保持打印数字的宽度相同。
wljslmz@lhb:~$ seq -w 9 11
09
10
11
- 1
- 2
- 3
- 4
以特定格式打印序列
可以使用选项将输出行格式化为指定格式f。
wljslmz@lhb:~$ seq -f '##%g##' 3 5
##3##
##4##
##5##
- 1
- 2
- 3
- 4
%g用于默认号码。%e以指数格式和%f浮点格式显示数字。
以字符串为分隔符的打印序列
到目前为止,序列都是垂直打印的,这是因为默认情况下,分隔符是换行符,可以使用 option 更改它s。
wljslmz@lhb:~$ seq -s ':' 4
1:2:3:4
- 1
- 2
分隔符之前的 ’ 不是必需的,但它有助于避免意外。
seq 命令的实际使用
可能想知道这个 seq 命令的实际用途是什么。可能有很多情况可以使用它。
我能想到的一个特定示例是当在 bash 中使用 for 循环时,可以使用 seq 命令,而不是在循环条件中手动指定序列。
#!/bin/bash
for i in $(seq 4 2 18)
do
echo "Number $i"
done
- 1
- 2
- 3
- 4
- 5
- 6
当运行上述 bash 脚本时,它将循环给定序列并打印值。
wljslmz@lhb:~$ bash seq.sh
Number 4
Number 6
Number 8
Number 10
Number 12
Number 14
Number 16
Number 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
文章来源: blog.csdn.net,作者:wljslmz,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_43025343/article/details/124119371
- 点赞
- 收藏
- 关注作者
评论(0)