如何在Linux中使用 seq 命令打印具有指定增量或格式的数字序列?

举报
wljslmz 发表于 2022/07/27 22:27:52 2022/07/27
【摘要】 seq 命令是 sequence 的缩写,用于打印数字序列,数字可以是整数或实数(带小数点)。 让我们看看如何通过一些示例来使用此命令。 使用 seq 命令 可以使用不带选项的 seq 来生成 3 ...

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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。