美文网首页
Linux: 生成数字序列和字母序列

Linux: 生成数字序列和字母序列

作者: LET149 | 来源:发表于2023-09-27 08:58 被阅读0次

在shell中生成满足要求的数字序列各和字母序列

1. 使用 { }

1.1 生成连续数字序列
(base) [zhiyong@malab Learn]$ echo {1..7}  #生成从1到7的整数数列,间隔为1,此为默认间隔
1 2 3 4 5 6 7

(base) [zhiyong@malab Learn]$ echo {7..-1}  #生成从7到-1的整数数列,间隔为1
7 6 5 4 3 2 1 0 -1

(base) [zhiyong@malab Learn]$ echo {1..8..2}  #生成从1到8的整数数列,间隔为2,从1开始,到范围之内的最后一个加和结果结束
1 3 5 7
1.2 生成字母序列
(base) [zhiyong@malab Learn]$ echo {a..f}  #生成从a到f的小写字母序列,字母是连续的,间隔为1,此为默认
a b c d e f

(base) [zhiyong@malab Learn]$ echo {a..f..2}  #生成从a到f的小写字母序列,间隔为2的字母序列
a c e

(base) [zhiyong@malab Learn]$ echo {f..a..2}  #生成从f到a的小写字母序列
f d b

(base) [zhiyong@malab Learn]$ echo {A..F}  #生成从A到F的大写字母序列
A B C D E F
1.3 生成组合字母序列
(base) [zhiyong@malab Learn]$ echo {s,f{a..d}{B..E},k,h}  #
s faB faC faD faE fbB fbC fbD fbE fcB fcC fcD fcE fdB fdC fdD fdE k h
1.4 { }中不支持对其他变量的调用
(base) [zhiyong@malab Learn]$ x=8
(base) [zhiyong@malab Learn]$ echo $x
8
(base) [zhiyong@malab Learn]$ echo {1..$x}
{1..8}  #结果并没有生成数字序列

2. 使用 seq

seq仅支持生成数字序列,不支持字母序列的生成

2.1 根据默认生成数字序列
(base) [zhiyong@malab Learn]$ seq 1 5  #默认生成数字序列时,其数字间隔是1,数字间的分隔符是换行符 \n
1
2
3
4
5
2.2 生成按行排列的数字序列
(base) [zhiyong@malab Learn]$ seq -s' ' 1 5 
1 2 3 4 5

-s 来指定分隔符,注意单引号要与 -s 相连,但引号之中的内容是分隔符

2.3 生成指定间隔的数字序列
(base) [zhiyong@malab Learn]$ seq -s' ' 1 3 20  #从1到20,以3为间隔生成数字序列,修改分隔符为空格
1 4 7 10 13 16 19
2.4 不指定起始位置,仅指定终止位置生成分隔符
(base) [zhiyong@malab Learn]$ seq -s' ' 7 
1 2 3 4 5 6 7

当不指定起始位置,只指定终止位置时,默认的起始值为1,默认间隔为1

2.5 调用其他变量生成数字序列
(base) [zhiyong@malab Learn]$ x=3
(base) [zhiyong@malab Learn]$ y=9
(base) [zhiyong@malab Learn]$ seq -s' ' $x $y
3 4 5 6 7 8 9

可以在 seq 中调用其他变量,这一点与 { } 明显区分开

2.6 在for语句中使用seq

for 语句中使用 seq 时,要注意在seq语句的外部加上 $()

for i in $(seq 1 5)
do
    echo "这个数字是:$i"
done
3.0 任意指定一个数字变量

其实是指定一个变量,并给这个变量赋值为以数字为元素的字符串

(base) zhiyong@zhiyong-OptiPlex-7050:~$ aa='2 4 6 7'  #用单引号来定义变量,注意中间空格的使用;也可以用双引号来定义
(base) zhiyong@zhiyong-OptiPlex-7050:~$ echo $aa
2 4 6 7
(base) zhiyong@zhiyong-OptiPlex-7050:~$ for i in $aa; do  echo "hello world"$i"is good"; done
hello world2is good
hello world4is good
hello world6is good
hello world7is good

相关文章

  • js生成字母数字随机序列

  • HTML列表、表格及表单

    列表 列表可分为有序列表、无序列表和定义列表 有序列表 ... type的属性值:1:数字(默认)a:小写字母...

  • 使用md文件生成docx

    需求说明 需要将markdown格式的文件生成docx,比较特殊的是需要将无序列表和有序列表转化为大写字母的有序列...

  • Oracle中序列的使用

    序列介绍 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)...

  • EXCEL中,如何快速录入英文字母序列?

    我们不能像录入数字序列那样,录入英文字母序列。 一、录入大写英文字母序列 在第1个单元格中,输入公式:=CHAR(...

  • 命名规范

    1.标识符由字母和数字组成的序列,首个字母不能是数字。字母包括‘A’-‘Z’、‘a’-‘z’、‘_’、'$'或某种...

  • HTML任务一

    代码: 数字列表 字母列表 小写字母列表```2、不同类型的无序列表

  • 序列——Sequence

    7.1About Sequencess(关于序列) 序列是数据库对象的一种。多个用户能够通过序列来生成连续的数字以...

  • shell数值工具

    数字序列seq 5 -1 1 | xargs 使用{..}生成数值序列echo {1..9}输出1 2 3 4 5...

  • Flutter JSON序列化(FromJson和ToJson)

    序列化方式 手动序列化和反序列化 通过代码生成自动序列化和反序列化 对于较小项目,使用代码生成器可能会过度。对于具...

网友评论

      本文标题:Linux: 生成数字序列和字母序列

      本文链接:https://www.haomeiwen.com/subject/iomdnktx.html