shell脚本语言seq命令

本文介绍了shell脚本中的seq命令,用于生成指定范围内的整数序列。内容包括seq命令的基本用法,如设置数字位数、指定前导空格或0填充,设置分隔符,以及在创建文件夹和文本文件时的应用。了解seq命令有助于提高shell脚本的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击个人博客,查看更多文章https://elonjelinek.github.io/

seq用于产生从某个数到另一个数之间的所有整数

ElonJelinek:Desktop ElonJelinek$ seq 1 6
1
2
3
4
5
6
ElonJelinek:Desktop ElonJelinek$

-f指定格式,%后面指定数字的位数
%3g表示指定3位数,不足3位的数,前面有个空格
仔细观察发现,seq -f "%3g" 9 13的输出结果均是两位数,所以前面都有个空格。

ElonJelinek:Desktop ElonJelinek$ seq -f "%3g" 9 13
  9
 10
 11
 12
 13
ElonJelinek:Desktop ElonJelinek$ seq -f "%3g" 98 102
 98
 99
100
101
102
ElonJelinek:Desktop ElonJelinek$

%03g表示指定3位数,不足3位数的前面用0填充

ElonJelinek:Desktop ElonJelinek$ seq -f "%03g" 9 13
009
010
011
012
013
ElonJelinek:Desktop ElonJelinek$

%的前面可以加字符串,str%3g表示给生成的3位数前面加上字符串str,不足3位数的前面仍有个空格,3前面有0的表示用0填充

ElonJelinek:Desktop ElonJelinek$ seq -f "str%03g" 9 13
str009
str010
str011
str012
str013
ElonJelinek:Desktop ElonJelinek$ seq -f "str=%3g" 98 102
str= 98
str= 99
str=100
str=101
str=102
ElonJelinek:Desktop ElonJelinek$

-s指定分隔符,没有-s的时候,默认以回车分隔,也可以指定\n分隔,分隔符都写在双引号里,还可以用任意字符分隔,但是双引号里不能为空,可以是至少一个空格

ElonJelinek:Desktop ElonJelinek$ seq -s"+=\n" -f "str=%3g" 98 102
str= 98+=
str= 99+=
str=100+=
str=101+=
str=102+=
ElonJelinek:Desktop ElonJelinek$ seq -s"\n" -f "str%03g" 9 13
str009
str010
str011
str012
str013
ElonJelinek:Desktop ElonJelinek$ 
ElonJelinek:Desktop ElonJelinek$ seq -s"==" -f "str%03g" 9 13
str009==str010==str011==str012==str013==ElonJelinek:Desktop ElonJelinek$ 
ElonJelinek:Desktop ElonJelinek$ seq -s"" -f "str%03g" 9 13
seq: invalid floating point argument: str%03g
ElonJelinek:Desktop ElonJelinek$ 

-w指定输出的数字同宽,不能和-f一起使用

ElonJelinek:Desktop ElonJelinek$ seq -w 98 101
098
099
100
101
ElonJelinek:Desktop ElonJelinek$ 

一次生成5个文件夹

ElonJelinek:Desktop ElonJelinek$ mkdir $(seq -f "dir%03g" 1 5)
ElonJelinek:Desktop ElonJelinek$ ls -l
total 1480
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 15:40 dir001
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 15:40 dir002
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 15:40 dir003
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 15:40 dir004
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 15:40 dir005
-rw-r--r--@ 1 ElonJelinek  staff     612  4 23 13:47 ping.txt
-rwxr-xr-x@ 1 ElonJelinek  staff      79  4 23 14:33 test.sh
-rw-r--r--@ 1 ElonJelinek  staff  356548  4 21 16:36 编程珠玑.png
-rw-r--r--@ 1 ElonJelinek  staff  385309  4 21 16:31 大话数据结构.png
ElonJelinek:Desktop ElonJelinek$ 

一次生成5个文本文件

ElonJelinek:Desktop ElonJelinek$ touch $(seq -f "%03g" 2 6)
ElonJelinek:Desktop ElonJelinek$ ls -l
total 1472
-rw-r--r--@ 1 ElonJelinek  staff       0  4 23 15:43 002
-rw-r--r--  1 ElonJelinek  staff       0  4 23 15:43 003
-rw-r--r--  1 ElonJelinek  staff       0  4 23 15:43 004
-rw-r--r--  1 ElonJelinek  staff       0  4 23 15:43 005
-rw-r--r--  1 ElonJelinek  staff       0  4 23 15:43 006
-rwxr-xr-x@ 1 ElonJelinek  staff      79  4 23 14:33 test.sh
-rw-r--r--@ 1 ElonJelinek  staff  356548  4 21 16:36 编程珠玑.png
-rw-r--r--@ 1 ElonJelinek  staff  385309  4 21 16:31 大话数据结构.png
ElonJelinek:Desktop ElonJelinek$ 

也可以指定后缀名

ElonJelinek:Desktop ElonJelinek$ touch $(seq -f "%03g.txt" 2 6)
ElonJelinek:Desktop ElonJelinek$ ls
002.txt                005.txt                编程珠玑.png
003.txt                006.txt                大话数据结构.png
004.txt                test.sh
ElonJelinek:Desktop ElonJelinek$ touch $(seq -f "%03g.go" 2 6)
ElonJelinek:Desktop ElonJelinek$ ls
002.go                 004.txt                test.sh
002.txt                005.go                 编程珠玑.png
003.go                 005.txt                大话数据结构.png
003.txt                006.go
004.go                 006.txt
ElonJelinek:Desktop ElonJelinek$ 

另一种写法

ElonJelinek:Desktop ElonJelinek$ awk 'BEGIN { while (num < 10 ) printf "dir%03d\n", ++num ; exit}' | xargs mkdir
ElonJelinek:Desktop ElonJelinek$ ls -l
total 1472
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 16:13 dir001
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 16:13 dir002
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 16:13 dir003
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 16:13 dir004
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 16:13 dir005
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 16:13 dir006
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 16:13 dir007
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 16:13 dir008
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 16:13 dir009
drwxr-xr-x  2 ElonJelinek  staff      64  4 23 16:13 dir010
-rwxr-xr-x@ 1 ElonJelinek  staff      79  4 23 14:33 test.sh
-rw-r--r--@ 1 ElonJelinek  staff  356548  4 21 16:36 编程珠玑.png
-rw-r--r--@ 1 ElonJelinek  staff  385309  4 21 16:31 大话数据结构.png
ElonJelinek:Desktop ElonJelinek$

点击个人博客,查看更多文章https://elonjelinek.github.io/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值