어떻게 수정되지 않은bash를 사용하여 Linux에서 바이너리 파일 16 진 덤프를od
및 hexdump
명령 덤프 모두 삽입 공간이는 적합하지 않습니다.
출력에 모든 16 진수 문자, 공백 또는 줄 바꿈이있는 긴 문자열을 작성하는 방법이 있습니까?
답변
xxd -p file
또는 한 줄로 모든 것을 원한다면 :
xxd -p file | tr -d '\n'
답변
형식 문자열을 사용하면 16 진수 덤프가 원하는대로 정확하게 동작 할 수 있습니다 (공백 없음, 바이트 단위).
hexdump -ve '1/1 "%.2x"'
1/1
“각 형식은 한 번 적용되고 1 바이트가 걸립니다”를 의미 "%.2x"
하며 printf와 같이 실제 형식 문자열입니다. 이 경우 : 2 자리 16 진수, 더 짧은 경우 앞에 0.
답변
의 버전의 세부 사항에 의존하는 것 같습니다 od
. OSX에서는 다음을 사용하십시오.
od -t x1 -An file |tr -d '\n '
(주소가없는 16 진수 바이트 유형으로 인쇄됩니다. 물론 공백은 나중에 삭제됩니다.)
답변
펄 원 라이너 :
perl -e 'local $/; print unpack "H*", <>' file
답변
다른 답변이 바람직하지만 순수한 Bash 솔루션 의 경우 파일의 내용을 나타내는 16 진수 문자의 연속 스트림을 출력 할 수 있도록 여기 에 스크립트를 수정했습니다 . (일반 모드는 에뮬레이션하는 것 hexdump -C
입니다.)