ASCII 코드 (예 : -
또는 _
또는 .
등)을 Unix 셸의 16 진수 표현으로 (bc
명령없이) 예 : -
=> %2d
.
어떤 아이디어?
C 함수를 시뮬레이션하는 printf
도구가 있습니다. 일반적으로 /usr/bin/printf
,하지만 많은 셸이이를위한 내장 기능도 구현합니다. 당신이 사용할 수있는 %02x
문자의 16 진 표현을 얻으려면 작은 따옴표로 된 문자를 포함하는 문자열을 전달해야합니다 (Edit : 시작 부분에 작은 따옴표 만 나타납니다. 충분하다):
printf "%%%02x\n" "'-" # Outputs %2d
편의를 위해 Shell 함수를 만들 수 있습니다.
function hex() {
printf "%%%02x\n" "'$1"
}
hex - # Outputs %2d
hex _ # Outputs %5f
hex . # Outputs %2e
od 시도 :
$ echo -n "-_." | od -A n -t x1
2d 5f 2e
-A n
는 오프셋을 인쇄하지 않음을 의미하고 -t x1
는 입력 유형이 1 바이트의 16 진 정수임을 의미합니다.
xxd
은 vim-common
패키지의 일부로 제공되는 16 진 덤프 유틸리티입니다.
연속적인 '일반/포스트 스크립트'hexdump 스타일을 출력하는 편리한 -p
옵션이 있습니다.이 옵션은 -r
... -u
를 통해 쉽게 되돌릴 수 있습니다. 대문자 16 진수를 출력합니다.
$ echo -n "M" |xxd -p # 1 ASCII char= 1 UTF-8 byte; Unicode Codepoint: U+0041
4d
$ echo -n "〶" |xxd -p -u # 1 CJK char= 3 UTF-8 bytes; Unicode Codepoint: U+3036
E380B6
$ echo -n "Dump a string" |xxd -p -u
44756D70206120737472696E67
$ echo -n "Dump and Revert" |xxd -p |xxd -r
Dump and Revert