วิธีการพิมพ์ 10 ไบต์แรกเป็นเลขฐานสิบหกของไฟล์?


คำตอบ:


11

ฉันมาที่นี่เพื่อดูสามคำตอบที่คิดว่าฉันไม่มีอะไรจะเพิ่มและนี่จะเป็นการออกกำลังกายในการที่คนจำนวนมากสามารถโพสต์ 1 ซับเดียวกันในนาทีแรกของคำถามที่ถูกถาม แต่ฉันพบคนที่ใช้hexdumpเครื่องมือแปลก ๆ คำสั่งนั่นคือวิธีที่นานกว่า 2 ตัวอักษร; มันหมายถึงฐานบางอย่างที่ไม่ใช่ฐานหนึ่งที่แท้จริง (ฐาน 8); และมันก็ชัดเจนจากชื่อของมันว่ามันทำอะไร เห็นได้ชัดว่านี่ไม่ใช่วิธี Unix

ดังนั้นนี่คือความสุขของod("octal dump")

GNU แรกคุณจะพบกับ Linux Mint ของคุณ:

od --format=x1 --read-bytes=10 foo

ตอนนี้ BSD โดยที่ประชดคือว่าจริง ๆ แล้วเป็นโปรแกรมเดียวกันกับhexdump:

od -t x1 -N 10 foo

1
ฉันตัดฟันของฉันบนไมโครโปรเซสเซอร์ 8 บิตที่ทุกอย่างทำในรูปหกเหลี่ยม สำหรับฉันแล้วฐานที่แท้จริงหนึ่งคือ 16 ฉันเคยใช้ Unix มาตั้งแต่ปี '84 และสิ่งหนึ่งที่ฉันมักจะเกลียดเสมอเกี่ยวกับมันคือการแก้ไขด้วยเลขฐานแปด: ฉันไม่สามารถยืนฐานแปดด้วยการเข้ารหัส 3 บิต ซึ่งจะไม่ขยายอย่างราบรื่นจากหนึ่งถึงหลายไบต์ และตัวอักษรจำนวนเต็มฐานแปดใน C และภาษาอื่น ๆ เป็นซากรถไฟที่ยังคงสร้างความหายนะมาจนถึงทุกวันนี้ (+1 ตามวิธี)
Adrian Pronk

11

ตัวเลือก-l len | -len lenสำหรับ: หยุดหลังจากเขียน<len>ออคเต็ต

ใช้กับไฟล์เช่นนี้:

xxd -l 10 file

หรือ

hexdump -C -n 10 file

โดยที่-n lenเหมือนกับ-lตัวเลือกจาก xxd


5

คุณสามารถใช้xxdเพื่อทำเช่นนั้น

$ xxd -ps -l 10 FILENAME
546865204d4954204c69

สิ่งนี้จะพิมพ์ 10 ไบต์แรกของ ( -l 10) FILENAMEในรูปแบบ hex ธรรมดา ( -ps)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.