bash – Base64编码新行
发布时间:2020-12-15 22:51:47 所属栏目:安全 来源:网络整理
导读:我试图在 shell脚本中将一些十六进制值编码为base64. nmurshed@ugster05:~$echo -n "1906 1d8b fb01 3e78 5c21 85db 58a7 0bf9 a6bf 1e42 cb59 95cd 99be 66f7 8758 cf46 315f 1607 66f7 6793 e5b3 61f9 fa03 952d 9101 b129 7180 6f1d ca93 3494 55e0 0e2e"
我试图在
shell脚本中将一些十六进制值编码为base64.
nmurshed@ugster05:~$echo -n "1906 1d8b fb01 3e78 5c21 85db 58a7 0bf9 a6bf 1e42 cb59 95cd 99be 66f7 8758 cf46 315f 1607 66f7 6793 e5b3 61f9 fa03 952d 9101 b129 7180 6f1d ca93 3494 55e0 0e2e" | xxd -r -p | base64 GQYdi/sBPnhcIYXbWKcL+aa/HkLLWZXNmb5m94dYz0YxXxYHZvdnk+WzYfn6A5UtkQGxKXGAbx3K kzSUVeAOLg== 76个字符后我得到一个自动换行,有没有办法避免这种情况? 在网上我发现,使用“-n”忽略新行…有人可以提出建议吗? 解决方法
echo -n在这里实际上并不重要:它控制echo的输出是否有换行符,但echo是否发出换行符与xxd或base64是否发出换行符无关.
因为xxd忽略输入中的任何尾随换行符,所以echo或echo -n在这里的行为完全相同; echo是否有换行没有区别,因为读取输入时xxd会消耗换行符(如果存在).相反,你最终关心的是base64的输出,这就是产生最终结果的原因. 假设您有GN64版本的base64,添加-w 0以禁用其输出中的换行.从而: printf '%s' "1906 1d8b fb01 3e78 5c21 85db 58a7 0bf9 a6bf 1e42 cb59 95cd 99be 66f7 8758 cf46 315f 1607 66f7 6793 e5b3 61f9 fa03 952d 9101 b129 7180 6f1d ca93 3494 55e0 0e2e" | xxd -r -p | base64 -w 0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |