คำตอบเดิมของฉันไม่ถูกต้อง - xxdไม่สามารถยอมรับ-pหรือ-rด้วย-b...
ระบุว่าคำตอบอื่น ๆ นั้นสามารถใช้การได้และในความสนใจของ " วิธีอื่น " วิธีการดังต่อไปนี้:
อินพุต
$ cat instructions.txt
00000000000000000000000000010011
00000010110100010010000010000011
00000000011100110000001010110011
00000000011100110000010000110011
00000000011100110110010010110011
00000000000000000000000000010011
เอาท์พุต
$ hexdump -Cv < instructions.bin
00000000  00 00 00 13 02 d1 20 83  00 73 02 b3 00 73 04 33  |...... ..s...s.3|
00000010  00 73 64 b3 00 00 00 13                           |.sd.....|
00000018
ไปป์ไลน์:
cat instructions.txt \
    | tr -d $'\n' \
    | while read -N 4 nibble; do 
        printf '%x' "$((2#${nibble}))"; \
      done \
    | xxd -r -p \
    > instructions.bin
cat - ไม่จำเป็น แต่ใช้เพื่อความชัดเจน 
tr -d $'\n' - ลบบรรทัดใหม่ทั้งหมดออกจากอินพุต 
read -N 4 nibble- อ่านว่า 4 ×ตัวอักษรลงในnibbleตัวแปร 
printf '%x' "$((2#${nibble}))" แปลงแทะจากไบนารี่ถึง 1 ×ฐานสิบหกตัวอักษร
$((2#...)) - แปลงค่าที่กำหนดจากฐาน 2 (ไบนารี) เป็นฐาน 10 (ฐานสิบ) 
printf '%x' - จัดรูปแบบค่าที่กำหนดจากฐาน 10 (ฐานสิบ) ถึงฐาน 16 (เลขฐานสิบหก) 
 
xxd -r -p- reverse ( -r) การดัมพ์ธรรมดา ( -p) - จากเลขฐานสิบหกไปเป็นไบนารี่ดิบ 
งูหลาม:
python << EOF > instructions.bin
d = '$(cat instructions.txt | tr -d $'\n')'
print(''.join([chr(int(d[i:i+8],2)) for i in range(0, len(d), 8)]))
EOF
- unquoted heredoc ( 
<< EOF) ถูกนำมาใช้เพื่อให้ได้เนื้อหาลงในรหัสหลาม
- สิ่งนี้ไม่มีประสิทธิภาพถ้าอินพุตมีขนาดใหญ่
 
 
catและtr- ใช้เพื่อรับอินพุต (หนึ่งบรรทัด) ที่สะอาด 
range(0, len(d), 8)- รับรายการตัวเลขตั้งแต่ 0 ถึงจุดสิ้นสุดของสตริงd, ก้าว 8 ×ตัวอักษรในเวลา 
chr(int(d[i:i+8],2))- แปลงชิ้นปัจจุบัน ( d[i:i+8]) จากไบนารี่เป็นทศนิยม ( int(..., 2)) จากนั้นเป็นอักขระดิบ ( chr(...)) 
[ x for y in z]- ความเข้าใจในรายการ 
''.join(...) - แปลงรายการของตัวละครเป็นสตริงเดียว 
print(...) - พิมพ์