当前位置:  开发笔记 > 编程语言 > 正文

Shell - 如何在Bash中将String转换为Byte数组

如何解决《Shell-如何在Bash中将String转换为Byte数组》经验,为你挑选了1个好方法。

我在StackOverflow上发现了许多帖子,这些帖子已经用C++,C#和其他语言覆盖了这个问题,但是没有使用Shell.

使用Bash/Shell,如何将随机String转换为byte array

我试过了:

echo "some string" | xxd -r -p

但它不起作用.

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



1> 小智..:

如果你想获得某些字符串的十六进制值,那么这有效:

$ 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

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有