Bash 从命令提示符增加字母数字数据

Bash 从命令提示符增加字母数字数据

我需要增加字母数字数据。

增加数字seq很简单:seq -w 0000001 9999999 >> file

但我需要按如下顺序递增字母数字数据:

0000001
0000002
0000003
0000004
0000005
0000006
0000007
0000008
0000009
000000a
000000b
000000c
000000d
000000e
0000010
0000011
0000012
0000013
0000014
0000015
0000016
0000017
0000018
0000019
000001a
000001b
000001c
000001d
000001e
0000020
0000021

等等...直到我击中eeeeee

使用字母数字数据{0-9a-e}。只需将数据加载到空文件中即可完成。有没有一个简单的 bash 命令可以实现与该seq命令类似的命令?我正在使用 Linux Debian 6.3.0-18 和 Bourne Again Shell。

答案1

假设你真的指的是十六进制(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)这里有一个直到FF的解决方案(我不想要数到 43 亿):

(echo obase=16; seq 1 $((echo ibase=16; echo FF) | bc)) | bc

内部

(echo ibase=16; echo FF) | bc

以十进制计算结束值(此处为 FF,但如果您愿意,可以随意替换为 FFFFFFFF :-)。在这种情况下,然后seq从 1 计数到 255,其余的将其转换为十六进制。

如果您确实想要基数 15,则可以将 16 更改为 15(以及将 FF...更改为 EE...)。

答案2

与打印操作员一起玩

#!/bin/bash
 for number in $( seq 1 255 )
  do
    hex_representation=$( printf "%X" ${number} )
    echo "${number}: ${hex_representation}"
 done

相关内容