这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令枚举,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
enum - seq- 和 jot-like 枚举器
概要
一般
枚举 [ 配置 ] 左 .. COUNT个x 步骤 .. 权
快捷键
枚举 [ 配置 ] 左 步骤 权
枚举 [ 配置 ] 左 权
枚举 [ 配置 ] 权
...
商品描述
枚举 枚举值(数字)来自 左 至 权 加/减 步骤 每一次。 如果
步骤 未提供隐含的值。 不超过 COUNT个 值被打印出来。 前
打印,值通过格式化程序传递。 请参见 配置 有关详细信息
控制格式化程序或 示例 对于用例。
进一步 枚举 使用细节包含在 用法 IN 详细信息.
示例
用途 IN 循环
对于 i 在 $(enum -e 1 20); 做
触摸文件_${i}
完成
用途 用于 随机 号码
数字=$(枚举--随机 3 .. 10)
而不是本机 Bash 之类的
f() { 分钟 = 1 美元; 最大值 = 2 美元; echo $((RANDOM * (max - min + 1) / 32767 + min)); }
数字=$(f 3 10)
显示 AN ASCII码 表
枚举 -f '[%3i] "%c"' 0 127
配置
随机 MODE
-r, - 随机的
产生随机数(可能有重复)而不是单调序列。
-i, - 种子=NUMBER
通过 NUMBER 作为随机数生成器的初始化器。 默认情况下,RNG 是
从当前时间和正在运行的实例的进程 ID 初始化 枚举.
格式化
-b, - 哑的=文字
将输出格式覆盖为 文字 无需插入占位符。 例如,
枚举 -b “富 % 10“ 3x 产生字符串 "foo % 10" 三次。
-c, - 人物
将输出格式覆盖为 %c 生成字符。 例如, 枚举 -c 65 67
产生字母“A”、“B”和“C”。
-e, --等宽
通过填充前导零来均衡宽度。 注意:在混合负和的情况下
非负数(例如 枚举 -e - -10 1),非负值将补偿
因为缺少前导减号和一个额外的零是相等的宽度。
-f, - 格式=FORMAT
覆盖默认输出格式 FORMAT. 有关允许的格式的详细信息,请
请点击 的printf(3)。
FORMAT 受制于 C 转义序列的处理(例如,“\n”换行)。 如果
FORMAT 不包含任何占位符, 枚举 将打印 FORMAT 反复。 在
相比之下, jot 会附加数字的值。 使数字出现
最后与 枚举,调整 FORMAT 适当。
-l, - 线
“的快捷方式-s ' '" 这意味着有一个空格而不是换行符作为分隔符。
-n, --省略换行符
从输出中省略终止字符串(默认为换行符),即它是一个快捷方式
至 ”-t ''".
-p, - 精确=COUNT个
覆盖打印精度的自动选择 COUNT个 小数位,例如“0.100”
COUNT个 = 3. 默认情况下,要打印的位数是根据
给定的参数和(给定或计算出的)步长。
-s, - 分隔器=文字
覆盖在值之间打印的分隔符。 默认情况下,值为
由换行符分隔。 文字 受制于 C 转义序列的处理(例如
"\n" 换行)。
-t, --终结者=文字
覆盖最后打印的终止符。 默认为换行符。 文字
受制于 C 转义序列的处理(例如,“\n”换行)。
-w, - 单词=FORMAT
--format 的别名,用于与 jot 兼容。 对于 GNU seq -w 意
--等宽,请参阅 -e.
-z, - 零, - 空值
打印空字节作为分隔符,而不是换行符。
其他
-h, - 帮帮我
输出使用信息并以代码 0 退出(成功)。
-V, - 版
显示版本信息并以代码 0 退出(成功)。
用法 IN 详细信息
争论
的逻辑 枚举的命令行参数为:
枚举 [ 配置 ] 左 .. COUNT个x 步骤 .. 权
涉及四个参数:
· 左, 开始枚举的值
· COUNT个,要生成的(最大)值数
· 步骤,从一个值到另一个值的差距
· 权,停止枚举的值(在某些情况下之前)
并非所有四个参数都需要,但可以指定所有四个参数。 对于一个列表
所有有效组合见 有效 组合方式 以下。 默认值推导的详细信息是
在 推导 OF 默认值.
有效 组合方式
有四个论据:
· 枚举 左 .. COUNT个x 步骤 .. 权
有三个论据:
· 枚举 左 COUNT个x 权
· 枚举 左 .. COUNT个x 步骤 ..
· 枚举 .. COUNT个x 步骤 .. 权
· 枚举 左 .. COUNT个x .. 权
· 枚举 左 .. 步骤 .. 权
· 枚举 左 步骤 权 (为了 GNU seq 兼容性)
有两个论点:
· 枚举 .. COUNT个x 步骤 ..
· 枚举 .. COUNT个x .. 权
· 枚举 COUNT个x .. 权
· 枚举 .. 步骤 .. 权
· 枚举 左 .. COUNT个x ..
· 枚举 左 .. 步骤 ..
· 枚举 左 .. 权
· 枚举 左 权 (为了 GNU seq 兼容性)
有一个论点:
· 枚举 .. 步骤 ..
· 枚举 .. COUNT个x ..
· 枚举 .. 权
· 枚举 权 (为了 GNU seq 兼容性)
· 枚举 左 ..
· 枚举 COUNT个x
如果参数少于三个,则应用默认值。 详细信息在 推导 OF
默认值 联络一位教师
从技术上讲,更多用例是可能的。 例如, COUNT个x 步骤 .. 权 is
明确的,因为参数的顺序是固定的。 然而,“enum 3x 4 .. 10”读起来很像
“3 到 4 之间的 10 个值”,而它实际上意味着“3 个值最多 10 个,步长为
4"。为了使 enum 的用户界面尽可能直观,
导致误解不执行。
推导 OF 默认值
自动选择 OF 精确
枚举 区分“2”、“2.0”、“2.00”等:
# 枚举 1 2
1
2
# 枚举 1 2.0
1.0
1.1
[..]
1.9
2.0
此外,如果派生步骤的小数位数多于指定的值 左
和 权,输出精度将提高到步长值的精度:
# 枚举 1 .. 3x .. 2
1.0
1.5
2.0
但是,指定的精度始终优先:
# 枚举 -p 2 1 .. 3x .. 2
1.00
1.50
2.00
论据 默认值
一般来说,需要三个参数; 任何三个都意味着第四个。 这个等式
将它们聚集在一起:
左 +(COUNT个 - 1) * 步骤 = 权
如果您指定的少于三个(请参阅 有效 组合方式),未指定的
派生或设置为其默认值:
· 左 默认为 1(除非 步骤 和 权 已指定,请参阅 推导 OF 左
下面)
· COUNT个 是无穷大,除非它可以从其他三个值导出。
· 步骤 默认为 1,除非它可以派生。
· 权 是 +/-无穷大,除非它可以从其他三个值导出。
显然,如果 COUNT个 设置为零(0x),枚举将不输出任何内容,无论
其他论点。
推导 OF 左
一般情况下, 左 默认为 1:
# 枚举 .. 3
1
2
3
If 步骤 和 权 是给定的,它被推导出为
左 = 权 - 步骤 * 地面(权 / 步骤)
# 枚举 .. 4 .. 10
2
6
10
如果,除了 步骤 和 权, COUNT个 给定,推导出如下:
左 = 权 - (COUNT个 - 1) * 步骤
# 枚举 .. 2x 4 .. 10
6
10
代 OF 王斌金璟閣的價值觀
请求自定义步骤时,会按如下方式生成值:
值[0] = 左 + 0 * 步
值[1] = 左 + 1 * 步
..
值[i] = LEFT + i * STEP
否则,为了避免不精确的累加,产生的值如下:
值[0] = LEFT + (RIGHT - LEFT) / (COUNT - 1) * 0
值[1] = LEFT + (RIGHT - LEFT) / (COUNT - 1) * 1
..
值[i] = LEFT + (RIGHT - LEFT) / (COUNT - 1) * i
生产停止时 COUNT个 值已经产生或 权 已经达到,
以先击中为准。 当所有四个值都完美匹配时,它们会同时命中
时间。
随机 MODE
基本上,随机模式在以下方面有所不同:
· 产生的值是随机的。
· 争论 COUNT个 默认为 1(一)。
· 争论 左 (总是!)默认为 1(一)。
· 争论 权 是必需的:随机不与无穷大混合。
本节详细介绍了这些差异。
COUNT个 默认值 TO 1 (一)
在随机模式下,默认只产生一个值:
# 枚举 1 4
1
2
3
4
# 枚举 -r 1 4
3
通过指定 COUNT个 您可以一次生成更多值:
# 枚举 -r 1 .. 3x .. 4
2
1
3
左 ALWAYS 默认值 TO 1 (一)
当您需要将数字增加到某个最大值(例如 10)时,每个数字由一个
您可以让某个步骤(例如 4) 枚举 为您计算所需的起始值:
# 枚举 .. 4 .. 10
2
6
10
随机模式 左 从不计算并默认为 1(一):
# 枚举 -r .. 5x 4 .. 10
1
1
9
1
5
随机 DOES 不是 MIX 与 INFINITY
一般情况下, 枚举 支持奔向无限:
# 枚举 1 .. 2.0 ..
1.0
3.0
5.0
[..]
但是,在随机模式下 枚举 现在会产生从 1 到无穷大的随机数(或一个大的
数像 最大FLT 在 ),我们已经决定反对。
历史
枚举 是 GNU seq 和 jot 的融合,功能方面。 两个工具的核心是打印序列
的数字。 GNU seq 有一个干净的界面,但功能非常有限。 写在另一边
hand 提供了更高级的功能,比如生成随机数,但代价是
界面不友好。
在 枚举 我们试图提供一种具有记事能力的工具和一个可用的、易于记忆的工具
界面。 枚举 在 BSD 许可下获得许可,并以 C89 编写,最大
可移植性。
以下部分详细介绍了差异。
对比 TO JOT
运用 枚举 而不是 jot 提供了两个主要优点:
· 提高可用性和
· 跨发行版和操作系统的统一行为。
截至 2010 年 10 月 03 日,DragonFlyBSD、FreeBSD、
MirOS BSD、NetBSD、OpenBSD 和 OS X。例如命令 小额 - 0 5 产生
· FreeBSD 和 OS X 上从 6 到 0 的 5 个整数,
0 1 2 3 4 5
· NetBSD 上从 100 到 0 的 99 个整数,以及
0 1 2 [..] 97 98 99
· 在 DragonFlyBSD、MiOS BSD 和
开放式BSD。
0 0 0 0 0 0 0 0 0 0 1 1 [..] 4 4 5 5 5 5 5 5 5 5 5 5
基本上,完整的 jot 功能集加上一些增强功能包含在 枚举. 姓名
已保留参数以提高兼容性,例如 -p 2 作品 枚举 as
它与 jot 相关:
# 记 -p 2 3
1.00
2.00
3.00
# 枚举 -p 2 3
1.00
2.00
3.00
请参阅 配置 详情请见上文。
附加 功能
额外的功能 枚举 优惠包括:
了解更多 难忘 指挥 LINE 用法
为了产生 3 到 1(含)之间的 10 个随机数,您将运行
记-r 3 1 10
附注。 我们发现这些替代调用 枚举 更直观:
枚举 -r 1 .. 3x .. 10
枚举 -r 1 3x 10
定制 分辨率 OF 随机
在 枚举 您可以指定要随机选择的可能值具有
特定的间距。 这两种情况说明了间隙 2 和
3:
# enum -r 4 .. 100x 2 .. 10 | 排序 -u -n
4
6
8
10
# enum -r 4 .. 100x 3 .. 10 | 排序 -u -n
4
7
10
客户服务 用于 一些 占位符 IN FORMAT 字符串
在 DragonFlyBSD、FreeBSD、MirOS BSD、OpenBSD 和 OS X 上记下:
# 记事本 -w %g%g 3
jot:转换太多
在 NetBSD 上记下:
# 记事本 -w %g%g 3
jot: 未知或无效的格式 `%g%g'
枚举 在任何平台上:
# 枚举 -f %g%g 3
11
22
33
客户服务 用于 - EP 序列
我们测试的所有 jot 实现(DragonFlyBSD、FreeBSD、MirOS BSD、NetBSD、
OpenBSD 和 OS X) 支持转义序列,比如“\n”,在 FORMAT:
# jot -w '%g\x41' 1
1\x41
枚举 能够正确地转义 "\x41":
# enum -w '%g\x41' 1
1A
附带说明一下,“\x25”产生一个文字“%”; 它不会构成占位符:
# enum -w '%g \x25g' 1
1%g
无 字节 AS 分隔器
使用包含空格的格式字符串时,您可能会在以下上下文中遇到麻烦
for 循环或 xargs:空格被视为分隔符,将您的字符串分解为
件:
# enum -f '绵羊数量 %d' 2 | xargs -n 1 回声
羊
数
1
羊
数
2
为了防止这种情况,你可以通过 - 空值 二者皆是 枚举 和 xargs:
# enum --null -f '羊数 %d' 2 | xargs --null -n 1 回声
1 号羊
2 号羊
差异性
搬运 OF FORMATS 无 占位符
与 jot 相比, 枚举 如果格式化字符串不附加当前值
不包含占位符。 记事本的行为:
# 记事本 3 -w test_
测试_1
测试_2
测试_3
的行为 枚举:
# 枚举 -w test_ 3
测试_
测试_
测试_
为了实现 jot 的输出 枚举,您应该手动附加一个占位符:
# 枚举 -w test_%d 3
测试_1
测试_2
测试_3
非数字 王斌金璟閣的價值觀 用于 左 AND 权
枚举 不支持使用 ASCII 字符代替它们的数值(例如
"A" 代表 65) 代表 左 和 权. 使用 jot,您可以执行以下操作:
# 记 3 A
65
66
67
不一致地,
# 记 3 0
0
1
2
jot 不会将“0”解释为代码为 48 的 ASCII 字符。我们无意
复制这种混合,此刻。
对比 TO GNU SEQ
基本上, 枚举的用法向后兼容 GNU seq 的用法。
附加 功能
额外的功能 枚举 通过 GNU seq 提供的服务包括:
随机 NUMBER MODE
枚举 支持约束随机数的输出,例如
枚举 -r 4 .. 3x 2.0 .. 11
从集合 {4.0, 6.0, 8.0, 10.0} 中产生三个(可能是重复的)随机数。
客户服务 用于 逆 订购
与 GNU seq 相比, 枚举 支持枚举递减值:
# 序列 3 1
# 枚举 3 1
3
2
1
客户服务 用于 一些 占位符 IN FORMAT 字符串
# 序列 -f %g%g 3
seq:格式`%g%g'有太多%指令
# 枚举 -f %g%g 3
11
22
33
客户服务 用于 - EP 序列
GNU seq 不支持转义序列,比如“\n”,在 FORMAT:
# seq -f '%g\x41' 1
1\x41
相比之下,其他一些 seq 实现可以这样做。 这三种行为
可以观察到(截至2010-10-25):
Plan 9、9base 和 GNU seq 的序列:
# seq -f '%g\x41' 3
1\x41
2\x41
3\x41
FreeBSD 和 NetBSD 上的 seq:
# seq -f '%g\x41' 1
1A
2A
3A
DragonFlyBSD 上的序列:
# seq -f '%g\x41' 1
1A3
2A3
3A3
枚举 也将 "\x41" 转义为 "A":
# enum -f '%g\x41' 3
1A
2A
3A
附带说明一下,“\x25”产生一个文字“%”; 它不会构成占位符:
# enum -f '%g \x25g' 1
1%g
省略 FINAL 新线
通过指定 -n 作为参数,您可以使 枚举 省略尾随的换行符。
差异性
GNU seq --等宽 捷径 -w 与 jot 的冲突 -w 字. 我们选择制作 -e 此
快捷方式 --等宽 in 枚举相反。
此外,虽然 GNU seq 在 GPL v3 或更高版本下获得许可, 枚举 在新 BSD 下获得许可
许可证。
谢谢
埃利亚斯·皮平、安德烈亚斯·冈施尔、贾斯汀·B·莱伊、大卫·普雷沃、卡米尔·杜德卡、迈克尔·比尼亚
作者
扬·豪克·拉姆[电子邮件保护]>
塞巴斯蒂安皮平[电子邮件保护]>
资源
主网站:https://fedorahosted.org/enum/
吉网: http://git.fedorahosted.org/git/?p=enum.git
使用 onworks.net 服务在线使用枚举