[linux] bash에 공백없이 16 진수 문자 만 포함하는 16 진수 덤프 파일을 만드는 방법은 무엇입니까?

어떻게 수정되지 않은bash를 사용하여 Linux에서 바이너리 파일 16 진 덤프를odhexdump명령 덤프 모두 삽입 공간이는 적합하지 않습니다.

출력에 모든 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입니다.)


답변