Shell 将位串转换为文本值代码的脚本

Shell scipt to convert bit string to text value code

我有 32 位的 0 字符串。字符串中的每一位代表一些代码,例如

1000000000000000000000000000000  = ABC
0100000000000000000000000000000 = DEF
...
0000000000000000000000000000001 = XYZ

我有字符串位的文件,有没有办法shell将输出编写成代码 为了。例如

1100000000000000000000000000000  should print ABC|DEF

感谢您的意见。

编辑1: @nullPointer:3 位字母是 32 位表示的人类可读表示的示例。

在bash中:

codes=("ABC" "DEF" ... "XYZ")
bitstring=1100000000000000000000000000000

outstring=""
for i in {0..31}; do
    if [ "${bitstring:i:1}" = 1 ]; then
        outstring+="|${codes[i]}"
    fi
done
echo "${outstring#|}"