Bash
ASCII to Binary 和 Binary to ASCII 轉換工具?
哪個是將 ASCII 轉換為二進制和將二進制轉換為 ASCII 的好工具?
我希望有類似的東西:
$ echo --binary "This is a binary message" 01010100 01101000 01101001 01110011 00100000 01101001 01110011 00100000 01100001 00100000 01100010 01101001 01101110 01100001 01110010 01111001 00100000 01101101 01100101 01110011 01110011 01100001 01100111 01100101
或者,更現實的:
$ echo "This is a binary message" | ascii2bin 01010100 01101000 01101001 01110011 00100000 01101001 01110011 00100000 01100001 00100000 01100010 01101001 01101110 01100001 01110010 01111001 00100000 01101101 01100101 01110011 01110011 01100001 01100111 01100101
反之亦然:
$ echo "01010100 01101000 01101001 01110011 00100000 01101001 01110011 00100000 01100001 00100000 01100010 01101001 01101110 01100001 01110010 01111001 00100000 01101101 01100101 01110011 01110011 01100001 01100111 01100101" | bin2ascii This is a binary message
PS:我正在使用 bash
PS2:我希望我沒有得到錯誤的二進製文件
$ echo AB | perl -lpe '$_=unpack"B*"' 0100000101000010 $ echo 0100000101000010 | perl -lpe '$_=pack"B*",$_' AB
-e *expression*
將給定的表達式計算為perl
程式碼-p
:sed
模式。對輸入的每一行計算表達式,將行的內容儲存在變數中並在計算**表達式$_
後列印。-l
: 甚至更像sed
: 而不是整行,只有行的內容(即沒有行分隔符)在$_
(並且在輸出中添加一個換行符)。所以perl -lpe code
就像程式碼sed code
而perl
不是sed
程式碼一樣工作。unpack "B*"
預設情況下對$_
變數起作用,並將其內容提取為從第一個字節的最高位到最後一個字節的最低位的位串。pack
做相反的事情unpack
。詳情請參閱perldoc -f pack
。帶空格:
$ echo AB | perl -lpe '$_=join " ", unpack"(B8)*"' 01000001 01000010 $ echo 01000001 01000010 | perl -lape '$_=pack"(B8)*",@F' AB
(它假設輸入是 8 位塊(0 填充))。
使用
unpack "(B8)*"
,我們一次提取 8 位,並將生成的字元串與空格連接起來join " "
。