我在StAdvExcel中发现了很多帖子,这些问题在C++、C语言和其他语言中都有,但是没有shell。
使用Bash/Shell,如何将随机String转换为byte array
我试过:

echo "some string" | xxd -r -p

但没用。
我基本上想要一个字节输出-例如)?e?GV??vY?Ge?#G

最佳答案

如果要获取某个字符串的十六进制值,则此操作有效:

$ echo "testing some values"$'\157' | xxd
0000000: 7465 7374 696e 6720 736f 6d65 2076 616c  testing some val
0000010: 7565 736f 0a                             ueso.

如果您只需要“普通”字符串:
$ echo "testing some values"$'\157' | xxd -p
74657374696e6720736f6d652076616c7565736f0a

如果需要“反转”十六进制字符串,请执行以下操作:
$ echo "74657374696e6720736f6d652076616c7565736f0a" | xxd -r -p
testing some valueso

如果需要的是字符表示(而不是十六进制),可以执行以下操作:
$ echo "testing:"$'\001\011\n\bend test'  | od -vAn -tcx1
  t   e   s   t   i   n   g   : 001  \t  \n  \b   e   n   d
 74  65  73  74  69  6e  67  3a  01  09  0a  08  65  6e  64  20
  t   e   s   t  \n
 74  65  73  74  0a

或:
$ echo "testing:"$'\001\011\n\bend test'  | od -vAn -tax1
  t   e   s   t   i   n   g   : soh  ht  nl  bs   e   n   d  sp
 74  65  73  74  69  6e  67  3a  01  09  0a  08  65  6e  64  20
  t   e   s   t  nl
 74  65  73  74  0a

07-24 18:18
查看更多