防止 xxd 在输出中添加换行符

防止 xxd 在输出中添加换行符

在unix上如果我这样做

printf "aY.S'Hk([;jYJ}8eJ5)Wsd58/x}s]Pne3V-6:t@" | xxd -p -c 256 

我明白了

61592e5327486b285b3b6a594a7d38654a352957736435382f787d735d50 
6e6533562d363a7440

然而在 mac os 上(这也是我在 linux 上想要的)我得到

61592e5327486b285b3b6a594a7d38654a352957736435382f787d735d506e6533562d363a7440

我找不到任何方法来防止xxd在十六进制输出中添加换行符。我尝试sed删除换行符,但它不起作用。我无法tr在我的 UNIX 机器上安装。有什么方法可以从我的字符串创建一个没有任何换行符或空格的十六进制输出,或者有没有办法xxd在Linux上配置不添加任何空格?请注意,我几乎尝试了所有选项,xxd但没有运气

答案1

我尝试了这个(macos ventura 13.4(22F66),bash 5.2.15(1)-release):

$ echo -n "change this password to a secret" | xxd -p
6368616e676520746869732070617373776f726420746f20612073656372
6574

然后随机尝试(没有线索:);

$ echo -n "change this password to a secret" | xxd -p -c 0
6368616e676520746869732070617373776f726420746f206120736563726574

这就是我一直在寻找的。也许这有帮助。

相关内容