gpt4 book ai didi

bash - 在 bash 中将十六进制八位字节数组转换为字符串变量

转载 作者:行者123 更新时间:2023-12-02 01:23:21 24 4
gpt4 key购买 nike

除了以下方法之外,还有“更好”的方法将十六进制数组转换为 shell 中的字符串变量吗?

也许通过变量替换?

# the following is a hex representation of the string "filename.txt"
a=(66 69 6c 65 6e 61 6d 65 2e 74 78 74);
var="";
for i in ${a[@]}; do \
var+=$(echo -n -e "\x$i");
done;
echo $var;
# -> filename.txt

我正在寻找一个简单的 bash 解决方案,不使用 perl、python 或其他脚本语言。

最佳答案

这是一种方法:

$ a=(66 69 6c 65 6e 61 6d 65 2e 74 78 74)
$ printf -v var '%b' "${a[@]/#/\\x}"
$ echo "$var"
filename.txt
$

参见printfShell Parameter Expansion欲了解更多信息。

关于bash - 在 bash 中将十六进制八位字节数组转换为字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75572486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com