曲径通幽论坛

标题: seq -- 打印一序列数字 [打印本页]

作者: beyes    时间: 2011-4-28 00:38
标题: seq -- 打印一序列数字
seq 用来打印一序列数字,有 3 种使用形式:
        seq [OPTION]... LAST
       seq [OPTION]... FIRST LAST
       seq [OPTION]... FIRST INCREMENT LAST
一般的,打印从 FIRST 到 LAST 之间的数字,如果 FIRST 和 INCREMENT 不指定,那默认从 1 开始,比如:
[root@centos ~]# seq 2
1
2
如果只指定 FIRST 和 LAST 而忽略 INCREMENT ,那么就打印从 FIRST 和 LAST 之间的数字,每次增量为 1 :
[root@centos ~]# seq 2 5
2
3
4
5
可以在 FIRST 和 LAST 之间指定一个增量:
[root@centos ~]# seq 1 3 20
1
4
7
10
13
16
19
-f 选项可以让输出的字母按照某种格式打印出来,这些格式是和 printf() 函数中的一样的,比如打印浮点数:
[root@centos ~]# seq -f %f 1 3 20
1.000000
4.000000
7.000000
10.000000
13.000000
16.000000
19.000000
-s 选项用来指定分隔符:
[root@centos ~]# seq -s "--" 1 3 20
1--4--7--10--13--16--19

-w 参数用来在在输出的数字前补0,目的也是一种格式对齐,比如:
[root@centos ~]# seq -w  1 10 130
001
011
021
031
041
051
061
071
081
091
101
111
121

seq 在脚本中的应用举例:
[Bash shell] 纯文本查看 复制代码
#!/bin/bash
NET=18.7.22
for n in $(seq 1 254); do
  ADDR=${NET}.${n}
  echo -e "${ADDR}\t$(dig -x ${ADDR} +short)"
done

上面脚本里的 for 语句中,n 变量从 1 到 254 依次取值。整个脚本是用来输出 18.7.22.x 上的 上绑定的域名。输出:
[root@centos shell]# sh lookup.sh
18.7.22.1       W92-RTR-1-W92SRV22.MIT.EDU.
18.7.22.2       W92-RTR-1-W92SRV22-HSRP-PRIMARY.MIT.EDU.
18.7.22.3       B24-RTR-3-W92SRV22-HSRP-SECONDARY.MIT.EDU.
18.7.22.4       W92-130-SW-STUB-W92SRV22.MIT.EDU.
18.7.22.5       W92-130-BR-W92SRV22.MIT.EDU.
18.7.22.6       M24-004-SW-STUB-24SRV22.MIT.EDU.
18.7.22.7       BABY-7-22.MIT.EDU.
18.7.22.8       M24-004-BR-24SRV22.MIT.EDU.
18.7.22.9       W92-F5-FAILOVER-BR.MIT.EDU.
18.7.22.10
18.7.22.11
18.7.22.12
18.7.22.13      AGENT-7-22.MIT.EDU.





欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2