hexdump
인수 없이 터미널을 열면 :
hexdump
터미널에 무언가를 입력하고 키를 누르면 Enter
입력 hexdump
한 문자의 16진수 값이 표시됩니다.
그러나 hexdump
16자를 입력하면 16진수 값만 표시됩니다. 예를 들면 다음과 같습니다.
a
여기서는 문자를 15번 입력 하고 눌렀습니다 Enter
(그래서 hexdump
16자가 수신되었습니다(15 a
+ \n
)).
하지만 예를 들어 16자 미만을 입력하면 다음과 같습니다.
여기서는 문자를 a
14번 입력하고 눌렀습니다 Enter
(그래서 hexdump
15자가 수신되었습니다(14 a
+ \n
)). 이 경우 hexdump
아무것도 표시되지 않습니다.
hexdump
16자가 수신될 때까지 기다리는 대신 수신된 길이 문자의 16진수 값을 표시 할 수 있습니까 ?
노트: 하고 싶지 않다"xxd 옵션과 함께 hexdump를 사용하여 행당 1바이트를 16진수로 표시합니다."(여기 댓글에서 제안된 대로). 제가 하고 싶은 것은 기본적으로 A의 16진수 값을 얻기 위해 추가로 15자를 입력하지 않고도 알 수 있는 것입니다.
답변1
노력하다 hexdump -v -e '/1 "%02X\n"'
. 라인당 하나의 16진수 바이트가 표시되므로 라인 출력 버퍼링은 라인 표시를 방해하지 않습니다.
그런 다음 A를 입력하고 A의 16진수 값을 확인하기 위해 돌아갑니다. 쉘 버퍼도 입력을 라인 버퍼하기 때문에 여전히 return을 입력해야 합니다.
man ascii
또한 작동합니다. :-)
답변2
동일한 라인의 버퍼링되지 않은 팩형 16진수 덤프를 stdbuf에 작성할 수 있습니다. Bash 예(일부 읽기 명령 옵션으로 인해 필요):
while read -s -n1 k; do printf $k; done | stdbuf -o0 hexdump -e '1/1 "%x"'