![바이트를 반환하는 xxd의 대안은 무엇입니까?](https://rvso.com/image/1345297/%EB%B0%94%EC%9D%B4%ED%8A%B8%EB%A5%BC%20%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94%20xxd%EC%9D%98%20%EB%8C%80%EC%95%88%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
xxd
저는 Mac OS X 10.8.2를 사용하고 있으며 v1.10 의 컴파일된 복사본을 실행하고 있습니다 (소스 코드) 및 해당 사본이 xxd
OS X에 사전 설치되어 제공됩니다.
터미널에서 파이프된 명령 체인을 통해 Base64로 인코딩된 SHA1 서명을 생성하려고 합니다.
일반적으로 나는 다음과 같은 작업을 수행합니다.
$ echo "foo" | openssl sha1 | xxd -p -r | base64 - > foo_sha1_signature
파일에는 foo_sha1_signature
일반적으로 문자열의 Base64로 인코딩된 SHA1 해시가 포함되어 있습니다 foo
.
문제는 xxd -p -r
데이터를 반환하지 않아 파일이 foo_sha1_signature
비어 있다는 것입니다.
의 출력을 보기 위해 명령을 분할하면 xxd -r
결과가 표시됩니다(아래 인쇄됨).
$ echo "foo" | openssl sha1 | xxd -p | xxd -r
7b36c94bcdf32bee$
그러나 표준 출력을 파일로 파이프하면 파일이 비어 있습니다.
$ echo "foo" | openssl sha1 | xxd -p | xxd -r > foo_sha1_bytes
$ ls -al foo_sha1_bytes
-rw-r--r-- 1 alexpreynolds staff 0 Jan 2 23:02 foo_sha1_bytes
표준 오류 파이핑을 시도하면 표준 출력에 바이트가 표시되고 파일은 여전히 비어 있습니다.
$ echo "foo" | openssl sha1 | xxd -p | xxd -r 2> foo_sha1_bytes
7b36c94bcdf32bee$
마지막으로, 이 모든 작업을 Linux에서 수행하면 xxd
예상대로 작동합니다(파일에 서명을 얻습니다). 따라서 이것은 xxd
OS X 10.8.2에서 작동하는 방식의 버그인 것 같습니다 .
xxd
Mac OS X에서 작동하고 표준 입력의 바이트 표현을 표준 출력으로 보내는 오픈 소스 대안이 있습니까 ?
답변1
당신은 시도해야
xxd -b <file>
파일을 바이너리 모드로 표시합니다.