如何在bash中将二进制转换为字节

时间:2019-01-14 16:30:39

标签: arrays bash base64

如何将以下go代码转换为bash

    data, _ := base64.StdEncoding.DecodeString("nJpGBA==")
    fmt.Println(data)

    //Output
    [156 154 70 4]

我到了这里

    echo nJpGBA== |base64 -d 

https://play.golang.org/p/OfyztKQINg9

1 个答案:

答案 0 :(得分:2)

不是完全匹配,但是:

echo nJpGBA== |base64 -d  | od -A n -t u1

输出:156 154 70 4

注意前导空格和之间的多个空格。

其他解决方案。将其分配给数组:

val_array=( $(echo nJpGBA== |base64 -d  | od -A n -t u1) )
echo "${val_array[@]}"

输出:156 154 70 4

命令od转储所有二进制文件,默认情况下为八进制值。在这里,它从stdin读取,因为没有给出文件。

  • -A n禁止输出字节地址
  • -t u1打印一个字节的无符号十进制数