Linux命令之 - seq

简介

Linux中的seq命令,通过指定起始值、递增值和结束值,以及分隔符、前缀、后缀和宽度的形式,生成特定样式的序列。

seq 命令有如下三种调用形式:

  • seq [OPTION] ... LAST

  • seq [OPTION] ... FIRST LAST

  • seq [OPTION] ... FIRST INCREMENT LAST

FIRSTINCREMENTLAST 均被看做浮点数。当省略 FIRST 或者 INCREMENT 时,它们的值均默认为 1。

选项详解

  • -s

    指定序列元素间的分隔符,默认为 \n

  • -w

    将序列各元素设置为等宽,用前导0补齐位数。起始值、递增值、结束值都应该用点分十进制表示。

  • -f

    使用 printf 样式的浮点数格式输出序列各元素。该选项的值必须使用一对单引号或者双引号包裹,其值的格式应为:

    [prefix]%[padding][flag][width][.][percision]formatter[suffix]

    其中 %formatter 是必须的,其他均为可选项:

    • prefix :为序列元素的前缀,若要包含 %,必须使用 % 进行转义;
    • suffix: 为序列元素的后缀,若要包含 %,必须使用 % 进行转义;
    • padding: 为填充字符,默认为空格,可以显式指定为空格或者 0

    • flag:可以是 -+# 0 中的一个或多个字符;

    • width: 表示数值部分的宽度,若指定的宽度小于生成的序列中宽度最大的一个值的宽度,则不足的部分仍以填充字符填充,超过宽度的以实际宽度为准;

    • pricision:表示精度的 0 个或多个数字;

    • formattereEfgG 中的任意一个字符;

注意:

-f-w 参数不能同时指定。

示例

只指定结束值:

$ seq 5
1
2
3
4
5

指定起始值和结束值:

$ seq 1 5
1
2
3
4
5

指定起始值为、递增值和结束值:

$ seq 1 2 10
1
3
5
7
9
$ seq 5 -1.5 -4
5.0
3.5
2.0
0.5
-1.0
-2.5
-4.0

指定起始值、结束值和分隔符:

$ seq -s '-' 5 10 
5-6-7-8-9-10
$ seq -s 'and' 5 10 
5and6and7and8and9and10

指定起始值、结束值、序列元素分隔符以及序列元素等宽;

$ seq -w -s '*' 8 13 
08*09*10*11*12*13

指定序列元素前缀为字符串 Player,数值部分宽度为2,填充字符为默认值空格,序列元素后缀为字符串 is the best,起始值为8,结束值为13:

Player 8 is the best
Player 9 is the best
Player10 is the best
Player11 is the best
Player12 is the best
Player13 is the best

指定序列元素前缀为字符串 Player,数值部分宽度为2,填充字符为0,序列元素后缀为字符串 is the best,起始值为1,结束值为5:

$ seq -f 'Player%02g is the best' 8 13
Player08 is the best
Player09 is the best
Player10 is the best
Player11 is the best
Player12 is the best
Player13 is the best

指定填充字符为0,数值部分宽度为4,起始值为999,递增值为4000,结束值为13001:

注意:

因为指定的宽度为4,而结束值的宽度为5,所以序列中的第一个元素需要用填充字符 0 补齐,而序列中的最后一个元素则显示为实际的宽度。

$ seq -f '%04g' 999 4000 13001
0999
4999
8999
12999

指定填充字符为0,数值部分宽度为6,起始值为-5,递增值为2.5,结束值为5;

$ seq -f '%06g' -5 2.5 5
-00005
-002.5
000000
0002.5
000005

使用 -f 选项对序列元素进行格式化:

$ seq -f '占比为%5.3f%%' 85 90
占比为85.000%
占比为86.000%
占比为87.000%
占比为88.000%
占比为89.000%
占比为90.000%
$ seq -f '占比为%5g%%' 85 90
占比为   85%
占比为   86%
占比为   87%
占比为   88%
占比为   89%
占比为   90%
$ seq -f 'result is: %5g%%' -3 3  
result is:    -3%
result is:    -2%
result is:    -1%
result is:     0%
result is:     1%
result is:     2%
result is:     3%
$ seq -f 'result is: %#5g%%' -3 3  
result is: -3.00000%
result is: -2.00000%
result is: -1.00000%
result is: 0.00000%
result is: 1.00000%
result is: 2.00000%
result is: 3.00000%
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值