Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Base64编码仅修改可打印字符_Linux_Bash_Base64 - Fatal编程技术网

Linux Base64编码仅修改可打印字符

Linux Base64编码仅修改可打印字符,linux,bash,base64,Linux,Bash,Base64,我有一个base64字符串,其中包含不可打印的字符 我只想修改可打印的。但是我不能使用base64-d,因为我会丢失那些不可打印的 这是允许我这么做的命令吗 例如,如果我这样做了 echo "base64 string" | base64 -d | od -c 我得到 0000000 004 002 254 334 0 202 003 362 \f \0 0 202 003 354 0 202 0000020 003 350 002 002 006 021 0 -

我有一个base64字符串,其中包含不可打印的字符

我只想修改可打印的。但是我不能使用base64-d,因为我会丢失那些不可打印的

这是允许我这么做的命令吗

例如,如果我这样做了

echo "base64 string" | base64 -d | od -c 
我得到

0000000 004 002 254 334   0 202 003 362  \f  \0   0 202 003 354   0 202
0000020 003 350 002 002 006 021   0   -   0   )   0 036 002 004   A 343
0000040 271   | 002 003  \0 352 233 002 002 021 340 002 002  \0 232 002
0000060 001   . 004 006  \0  \f   ) 346 353 323  \f  \a   J   0   0   6
0000100   0   6
等等

假设我只想用j01修改j0…我能做到吗

更新:

目前,解决方案正在转换并将base64解码输出到一个文件中,然后使用十六进制编辑器对其进行编辑


因此,如果您知道linux中包含的一些命令行十六进制编辑器,请在我的系统上尝试时告诉我

base64:输入无效

因为您只需要可打印字符,所以我怀疑您需要的是base64编码字符串

如果是这样,您应该跳过
-d
选项:

echo "base64 string" | base64 | od -c

如果确实要将某些字符更改为其他字符,可以使用
tr
(translate)命令:

man tr

tr
-翻译或删除字符


您正在解码
“base64字符串”
,您对得到“二进制”感到惊讶吗返回数据?@aioobe我知道我要解决的问题…我的意思是我不应该使用base64解码…并且每个字符即使不可打印也可以根据is代码写入…004不可打印,但它是代码,但在使用base64解码时,我可能会丢失一些不可打印的字符…这就是发生的情况…
base64
编码任意将数据转换为可打印字符
base64-d
反转此过程。显然,解码的结果可能是无法打印的字符。可以肯定的是,无论您向
base64 | base64-d
提供什么数据,您都会得到相同的数据。