我在StackOverflow上发现了许多帖子,这些帖子用C,C#和其他语言覆盖了这个问题,但是没有用
Shell.
使用Bash / Shell,如何将随机字符串转换为字节数组?
我试过了:
echo "some string" | xxd -r -p
但它不起作用.
我基本上想要一个字节输出 – 例如)?è?GV?VY?戈?#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