zoukankan      html  css  js  c++  java
  • seq 命令的用法

    一,seq命令的用法

    1) seq命令可以输出连续的数字

    输出固定间隔的数字,或者输出指定格式的数字,这样说比较模糊,看示例就很容易理解。
    seq命令最简单的使用方法如下

    seq 1 5 # 表示连续输出1到5,效果如下
    1
    2
    3
    4
    5
    

    2) seq命令步进输出

    比如从1 开始,每次步进 2 ,最大到10,效果如下。

    seq 1 2 10
    1
    3
    5
    7
    9
    

    3) seq命令常用选项

    1.使用这些选项能输出更多的格式,此处先列出seq命令的常用选项,具体使用会在示例中展示。
    -s  # 指定输出的分隔符,默认为
    ,即默认为回车换行
    -w  # 指定为定宽输出,不能和-f一起用
    -f  # 按照指定的格式输出,不能和-w一起使用
    
    2.常用选项示例-s
    -s # 选项:指定分隔符,
    
    # 指定加号为分隔符,输出的数字将会使用"+"连接,默认情况下回车换行(
    )为分隔符。
    [root@skyfish-studio-master ~]# seq -s +  10
    1+2+3+4+5+6+7+8+9+10
    
    
    使用如下方法可以使用制表符(	)作为分隔符,相当于我们键盘上的tab键。
    [root@skyfish-studio-master ~]# seq -s "`echo -e "	"`"  10
    1	2	3	4	5	6	7	8	9	10
    
    # 注意:使用了命令替换,也就是说,先使用echo命令输出制表符,然后用输出的制表符作为seq命令输出数字的连接符。
    
    3.-w 选项:指定为定宽输出

    最大值为11,是两位数,那么不到两位的数前面自动用0补全,当然,如果指定的位数最大为三位数字,那么一位数和两位数前面的位数都会用0补全,也就是说,以最大值的位数为标准宽度,不足标准宽度的数字将会用0补位,示例如下

    [root@skyfish-studio-master ~]# seq -w 8 11
    08
    09
    10
    11
    
    [root@skyfish-studio-master ~]# seq -w 99 103
    099
    100
    101
    102
    103
    
    
    3.-f 选项:按照指定的格式输出生成的数字

    在没有使用-f选项指定格式时,默认格式为%g,可以理解为使用-f 指定模式为"%g",跟不指定格式没有任何区别。

    [root@skyfish-studio-master ~]# seq 8 11
    8
    9
    10
    11
    [root@skyfish-studio-master ~]# seq -f '%g' 8 11
    8
    9
    10
    11
    

    上述示例中,输出的数字没有任何区别,因为在不指定格式的情况下,默认格式为'%g'

    那么除了上述的默认格式,我们经常还会使用如下常用格式,"%3g"这种格式表示指定"位宽"为三位,那么数字位数不足部分用空格补位,如下示例中,编号1对应的命令使用的格式为默认格式,与不指定任何格式输出的结果相同,编号2对应的命令使用的格式表示输出的数字位宽固定为3位,不足三位的数字用空格在数字左侧补齐。

    [root@skyfish-studio-master ~]# seq -f '%g' 8 11
    8
    9
    10
    11
    [root@skyfish-studio-master ~]# seq -f '%3g' 8 11
      8
      9
     10
     11
    
    

    "%02g" 表示指定位宽为两位,数字位数不足用0补位,这种写法跟上述提到的-w选项类似,只不过-w是以指定的最大值的位数为最大位数,而 -f 选项可以直接指定位数,在下例中,我们也对比了-w选项与-f选项的区别。

    [root@skyfish-studio-master ~]# seq -w 8 11
    08
    09
    10
    11
    [root@skyfish-studio-master ~]# seq -f '%02g' 8 11
    08
    09
    10
    11
    [root@skyfish-studio-master ~]# seq -f '%03g' 8 11
    008
    009
    010
    011
    [root@skyfish-studio-master ~]# seq -f '%04g' 8 11
    0008
    0009
    0010
    0011
    
    

    例子中的格式中,都包含一个'%',其实 % 前面还可以指定字符串。

    例如在屏幕上打印5个名为dir1 , dir2 .. dir5 的字符串,这时候就用到这种写法。

    [root@skyfish-studio-master ~]# seq -f 'dir%g' 1 5
    dir1
    dir2
    dir3
    dir4
    dir5
    
    

    4) seq 总结

    所以,结合上述示例中的seq命令的特性,再结合其他命令,就能为我们带来许多方便。

    例如一次性创建5个名为dir001 , dir002 .. dir005 的目录,这时候就用到这种写法。

    mkdir $(seq -f 'dir%03g' 1 10)
    
    # 或者如下命令,与上述命令的效果相同。
    
    seq -f 'dir%03g' 1 5 | xargs mkdir
    
  • 相关阅读:
    Extjs4.0以上版本 Ext.Ajax.request请求的返回问题
    C# NPOI 操作Excel 案例
    C# Microsoft.Office 操作Excel总结
    asp.net core NLog将日志写到文件
    新装的SSMS一打开就显示VS许可证过期,但VS又运行正常,解决方法。
    sql server 查询log日志 sql语句
    sql server 删除所有表及所有存储过程、所有视图和递归查询、数字类型转为字符串
    C#使用Selenium+PhantomJS抓取数据
    python爬虫实例项目大全
    SQL Server TVPs 批量插入数据
  • 原文地址:https://www.cnblogs.com/xiaolang666/p/14677345.html
Copyright © 2011-2022 走看看