hexdump: 16진수 모드에서 오프셋 열을 억제하는 방법

hexdump: 16진수 모드에서 오프셋 열을 억제하는 방법

바이트나 단어를 구분하기 위해 공백을 사용하지 않고 5번째 바이트부터 시작하여 이진 파일에서 16바이트를 가져오고 싶습니다.

hexdump내가 원하는 것을 할 것입니다. 출력을 방해하는 열을 오프셋하면 됩니다.

$ hexdump -s5 -n16 -xe '/1 "%01X"' binfile

odsed작업도 잘 작동하며 간격을 없애기 위해 이것을 사용해야 했지만 오프셋 열을 억제하라는 지시를 받을 수도 있습니다 .

$ od -An -tx1 -j5 -N16 | sed 's/ //g' binfile

없이도 작동할 것이라고 확신 sed하지만 od16진수 모드에서 엔디안(바이트 교환)과 관련된 많은 문제가 있었기 때문에 보기만큼 쉽지는 않습니다. 예를 들어 -tx1더 높은 값으로 변경하면 바이트가 바뀌고 원하는 128비트 값이 엉망이 됩니다. -tx1좋지만 hexdump아직 공백을 제거하는 방법을 찾지 못한 것 같습니다.하지만바이트 순서는 변경하지 않고 유지합니다.

답변1

-x옵션은 나중에 형식을 지정해도 표시되지 않는 오프셋을 표시하도록 hexdump에 지시합니다. 이 옵션을 제거하십시오 -x.

$ hexdump -s5 -n16 -e '/1 "%01X"' <<<@abcdefghijklmnopqrstuvwxyz; echo
65666768696A6B6C6D6E6F7071727374

플랫폼의 엔디안 에서 2바이트 값을 읽으려면 -x(x86 및 ARM과 같은 리틀 엔디안 플랫폼에서 2바이트 교환) .%02X%01X

1 ARM CPU는 두 엔디안을 모두 지원하지만 거의 모든 Unix 시스템은 이를 리틀 엔디안 모드에서 사용합니다.

관련 정보