nos*_*nos 3 text command-line conversion
我有一个巨大的文本文件,其中的数字代表二进制的 8 位值。我想将这些转换为十六进制(或十进制,并不重要)。也就是说,我有一个包含例如的文本文件
0 0 0 0 1 1 0 1
0 0 1 1 1 0 0 1
0 1 0 0 0 1 0 1
1 0 0 0 1 1 0 1
Run Code Online (Sandbox Code Playgroud)
(只有 8 位),我想将其转换为,比如说,
0x0d
0x39
0x45
0x1d
Run Code Online (Sandbox Code Playgroud)
听起来这可以通过 awk 脚本/vim 宏或任何其他工具的组合来完成。
这里有一个 bash 脚本片段来做到这一点
while read line; do
n=$((2#${line// /}))
printf '0x%02X\n' "$n"
done <input-file
Run Code Online (Sandbox Code Playgroud)
其中2#表示以 2 为底,${var// /}表示“删除所有空格”