Linux基础命令-seq打印数字序列

news2024/11/17 5:30:05

Linux基础命令-sed流编辑器

前言

seq命令通常是用来打印一串有规律的数字,常与其他命令搭配使用,一起来看下它的用法。

一. 命令介绍

在doc文档中查看seq命令的含义

NAME
       seq - print a sequence of numbers
DESCRIPTION
       Print numbers from FIRST to LAST, in steps of INCREMENT.

       Mandatory arguments to long options are mandatory for short options too.

seq命令用来打印数字序列,用以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,并可以对整数的格式,宽度,分隔符号进行控制。

二. 语法格式

seq的语法格式是seq 【参数】数值

SYNOPSIS
       seq [OPTION]... LAST
       seq [OPTION]... FIRST LAST
       seq [OPTION]... FIRST INCREMENT LAST

三 . 常用参数

在文档中查看有这几个参数,并且这几个参数都是较为常用的,像help,version参数每个命令都会有的,这里就不列出具体含义了,实际上就是查看帮助信息以及版本等内容。

       -f, --format=FORMAT
              use printf style floating-point FORMAT

       -s, --separator=STRING
              use STRING to separate numbers (default: \n)

       -w, --equal-width
              equalize width by padding with leading zeroes

       --help display this help and exit

       --version
              output version information and exit
命令选项含义
-f使用printf的浮点格式
-s使用字符串分隔数字 不指定默认是换行符
-w通过用前导0来均衡宽度

这里提到了printf的浮点格式,实际上浮点数有三种格式,分别是%e、%f、%g。

%e 是以科学计数法表示,小数点左边只有一位,小数点右边默认保留6位,再小数后面是符号e,就是整数的10的多少次幂。

举个例子就明白了,有一个数是123456,那么以科学计数法的方式计算,它的写法是:

123456== 1.23456 * 10^5 == 1.23456e5   

%f要求小数点右边保留6位小数

例如有个值是3.14,%f默认保留6位小数,若小数不够,则补0

3.14 = 3.140000

%f也可以只保留两位小数,需要给它指定保留多少位小数
%0.2f表示保留2位小数,当然也可以这样写 %.2f,不加上小数点前面的0

%g 在数字很大或很小时会自动以指数形式表示,比较灵活,可读性比较强,一般用于整数。

seq -s ' '  -f '%02g' 1 10
01 02 03 04 05 06 07 08 09 10

四. 参考实例

4.1 打印整数

在seq后的一个数值就是打印某个数以内的所有整数值

[root@VM-12-17-centos ~]# seq 10
1
2
3
4
5
6
7
8
9
10

有两个数值就是从first到last之间的整数

[root@VM-12-17-centos ~]# seq 15 20
15
16
17
18
19
20

现在的格式都是竖着显示,这样看着占用屏幕比较大,还记得为什么会竖着打印吗,-s默认是\n换行符进行分隔的,使用-s参数指定分隔符即可。

[root@VM-12-17-centos ~]# seq -s ' ' 1 100 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

4.2 使用seq搭配其他命令使用

例如我们要创建10个目录文件,可以使用seq命令结合mkdir一起来使用

[root@VM-12-17-centos 2023-04-13]# seq -f 'dir%02g' 1 10 | xargs mkdir
[root@VM-12-17-centos 2023-04-13]# ls
dir01  dir02  dir03  dir04  dir05  dir06  dir07  dir08  dir09  dir10

这样10个目录文件都创建好了;
以上效果还可以用脚本来实现

[root@VM-12-17-centos 2023-04-13]# for i in `seq -f 'dir%02g' 11 20`;do mkdir /root/2023-04-13/$i;done
[root@VM-12-17-centos 2023-04-13]# ls
dir01  dir03  dir05  dir07  dir09  dir11  dir13  dir15  dir17  dir19
dir02  dir04  dir06  dir08  dir10  dir12  dir14  dir16  dir18  dir20

结果是一样的,因此在shell中,要实现某一种结果,可以有很多种方法。

4.3 seq的-w参数如何使用

-w参数在文档中查看还是很难明白它的意思,上手练习一下就会发现-w主要让每个数的宽度都达到一致。
如果是1-9的话,那使用-w参数没有什么区别

[root@VM-12-17-centos 2023-04-13]# seq -s ' ' 1 9
1 2 3 4 5 6 7 8 9
[root@VM-12-17-centos 2023-04-13]# seq -s ' ' -w 1 9
1 2 3 4 5 6 7 8 9

当打印的值有一个数有2位时,会将其他数也自动调整成两位,在值前面补上0,以确保每个值的宽度都是2位。

[root@VM-12-17-centos 2023-04-13]# seq -s ' ' 1 10 
1 2 3 4 5 6 7 8 9 10
[root@VM-12-17-centos 2023-04-13]# seq -s ' ' -w 1 10 
01 02 03 04 05 06 07 08 09 10

总结

seq命令是比较常用的一个命令,用来打印一串有顺序的数值内容,若觉得以上内容还行的,可以点赞支持一下!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/419823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4.14-4.16学习总结

多线程: 线程: 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。 进程: 进程是程序的基本执行实体 举个例子:360运行之后,它就可以看做是一个进程,但…

【UE4】关卡流送的demo

关卡流送功能可以将地图文件加载到内存中,或者从内存中卸载,并在游戏过程中切换地图的可视性。 这样一来,场景便能拆分为较小的地图块,并且只有相关部分才会占用资源并被渲染。 正确设置后,开发者便能创建大型、无缝衔…

c++STL容器之序列式容器

目录 vector容器 vector对象的默认构造 vector的初始化 vector的遍历 vector的增删改查 vector末尾的添加移除操作 vector的数据存取 deque容器 deque对象的默认构造 deque末尾的添加移除操作 deque的数据存取 stack容器 stack对象的默认构造 stack的push()与po…

Midjourney科普介绍

Midjourney是啥? Midjourney是一个由Midjourney研究实验室开发的人工智能程序,可根据文本生成图像,于2022年7月12日进入公开测试阶段,使用者可通过Discord的机器人指令进行操作,可以创作出很多的图像作品。 以下这些…

ROS2中将octomap发布到Moveit中作为碰撞物体

1.安装准备 这里假设你已经装好了ROS2以及Moveit2(都用二进制安装就行,不用从源码安转),没有安装好的,可以按照鱼香ROS的教程安装,两三行命令就搞定了。 我的ROS2版本为humble,请根据你使用的实…

银行数字化转型导师坚鹏:银行同业核心产品与营销策略解读

数字化背景下银行同业核心产品与营销策略解读课程背景: 数字化背景下,很多银行存在以下问题: 不清楚银行同业核心产品发展现状? 不清楚如何银行同业产品营销策略? 不知道如何更好地挖掘他行优质客户? 课…

国产化系统改造实践(未完)

一、项目背景 2020 年,红帽公司宣布,将在 2021 年 12 月 31 日和 2024 年 6 月 30 日分别终止对 CentOS 8 和 CentOS 7 的服务支持,把 CentOS 项目的工作和投资集中在CentOS Stream 上。 CentOS Linux 8已于2021年12月31日停止维护,CentOS Linux7也 将于2024年6月停服。s所…

技术创业者必读:从验证想法到技术产品商业化的全方位解析

导语 | 技术创业之路往往充满着挑战和不确定性,对于初入创业领域的人来说,如何验证自己的创业想法是否有空间、如何选择靠谱的投资人、如何将技术产品商业化等问题都需要认真思考和解决。在「TVP 技术夜未眠」第六期直播中,正马软件 CTO、腾讯…

【《C Primer Plus》读书笔记】第17章:高级数据表示

【《C Primer Plus》读书笔记】第17章:高级数据表示17.1 研究数据表示17.2 从数组到链表17.3 抽象数据类型(ADT)17.4 队列ADT17.5 用队列进行模拟17.6 链表和数组17.7 二叉查找树17.8 其他说明17.1 研究数据表示 在开始编写代码之前&#xf…

【2023】前端JWT详解

概述 回顾登录的流程: 接下来的问题是:这个出入证(令牌)里面到底存啥? 一种比较简单的办法就是直接存储用户信息的JSON串,这会造成下面的几个问题: 非浏览器环境,如何在令牌中记录…

C/C++每日一练(20230416)

目录 1. 求数列第n项值 ※ 2. 整数转换英文表示 🌟🌟🌟 3. 数组中找出最大值及索引位置 ※ 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 求数…

微信小程序引入骨架屏

骨架屏的使用越来越广泛。在微信小程序中使用骨架屏如果自己实现,不同的页面对应不同的骨架屏,会有一定难度;不过,微信小程序已经提供生成骨架屏功能,使得我们在开发中非常方便,下面介绍如何生成 在生成骨架…

[Linux]管理用户和组

​⭐作者介绍:大二本科网络工程专业在读,持续学习Java,输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Linux基础操作。本文主要是分享一些Linux系统常用操作,内容主要来源是学校作业,分享出来的…

JavaEE 协议 信息是如何在一个机器传到另一个机器的(理论)

抓住你了! 文章目录JavaEE & 协议 & 信息是如何在一个机器传到另一个机器的1. 局域网2. 广域网3. IP与端口号(初识)4. 协议4.1 协议分类分层4.2 协议分层的好处4.3 真实的网络协议分层,TCP/IP五层网络模型4.3.1 应用层4.3…

Spark 3.0中 Spark SQL优化

在Spark3.x版本提供Adaptive Query Execution自适应查询技术,通过在”运行时”对查询执行计划进行优化,允许Planner在运行时执行可选计划,这些可选计划将会基于运行时数据统计进行动态优化,从而提高性能。 Adaptive Query Execut…

在DongshanPI-D1开箱使用分享与折腾记录实现MPU6050数据读取

前言 上一篇文章使用RT-Smart的IIC驱动OLED屏幕,进行基本的字符串显示,在使用过程中对RT-Smart有了一定熟悉,准备使用SPI驱动ST7789,但SPI接口没有引出,本次使用手上已有的传感器MPU6050进行使用。 过程 本次直接开始添加离线包…

NDK RTMP直播客户端二

在之前完成的实战项目【FFmpeg音视频播放器】属于拉流范畴,接下来将完成推流工作,通过RTMP实现推流,即直播客户端。简单的说,就是将手机采集的音频数据和视频数据,推到服务器端。 接下来的RTMP直播客户端系列&#xff…

在国内pmp证书有什么含金量?

关于PMP的含金量,很多回答的说法都差不多,但那也只是字面上的含金量,真正的含金量还是得自己考过了之后能够给自己带来的帮助才方可对PMP含金量下定义,但能一眼就能看到的含金量是在一些招聘信息上关于PMP证书的要求,下…

【Axure教程】日期时间下拉列表

在系统中,我们经常会用到日期时间选择器,它同时包含了日历日期的选择和时间的选择,一般是下拉列表的形式进行选择。 今天作者就教大家如何在Axure中用中继器制作真实日期时间效果的下拉列表选。 一、效果展示 1、点击控件,可以…

游戏开发学习路线图(2023最新版)建议收藏

游戏开发是一个高度技术化的领域,需要掌握编程语言和编程技能。你可以从学习基本的编程概念和语法开始,如C、C#、Python等常用的游戏编程语言。掌握编程的基础知识是游戏开发的基石。很多小伙伴不知道怎么学习游戏开发,那么今天,就…