我在 a 的每一行都有一个十进制数file.txt
:
1
2
3
我正在尝试(现在太久了)编写一个单行脚本来输出,其中每一行都有一个包含十进制、十六进制和二进制的列。为了简化任务,我们可以说原始数字以字节表示。所以最大值是255。
我首先尝试将每个数字解码为带有前缀 0 的二元数,以便具有 8 位模式:
awk '{print "ibase=10;obase=2;" $1}' $1 | bc | xargs printf "%08d\n"
awk 语句中的外部 $1 是
file.txt
. 输出是:00000001 00000010 00000011
与前面加一个 0 的十六进制相同
awk '{printf("0x%02x\n", $1)}' $1
和之前一样。输出是:
0x01 0x02 0x03
好吧,小数点应该只是打印:
1 2 3
我想要的是一个班轮,我有:
1 00000001 0x01
2 00000001 0x02
所以基本上将 1. 2. 和 3. 放在输出的每一行中。
我尝试使用 system() 在 awk 中执行 bc (和其他命令)但没有成功。还有无数其他方式。你会怎么做?