Examples

기본 사용법

대화형으로 입력을 받아 16진수로 변환해 출력한다.

$ xxd
ab
00000000: 6162 0a                                  ab.
  • 위의 예제에서 키보드로 입력한 키는 a, b, Enter, ^D.
  • 출력 결과는 다음과 같이 해석할 수 있다.
    • 00000000: 주소 정보. 입력의 0번째 바이트.
    • 61: 0번째 바이트 값 61 (a)
    • 62: 1번째 바이트 값 62 (b)
    • 0a: 2번째 바이트 값 0a (newline)
    • 마지막의 ab: 입력한 문자열.
    • .: 종결 표시.

-p : 주소 정보와 입력값을 생략한다

-p 옵션을 주면 주소 정보와 입력값을 생략한다.

$ xxd -p
ab
61620a
  • 61: a
  • 62: b
  • 0a: newline

^H 같은 특수한 키의 hex값을 조사하기 편하다.

$ xxd
^HH
00000000: 0848 0a

입력을 16진수로 변환해 출력한다

$ # 'a'가 16진수로 61 이므로 61을 출력한다.
$ echo -n a | xxd
00000000: 61                                       a
$ # 'k'가 16진수로 6b 이므로 6b를 출력한다.
$ echo -n k | xxd
00000000: 6b                                       k
$ # 입력 포맷을 주지 않고, plaintext로 출력한다.
$ echo -n a | xxd -p
61

입력을 2진수로 변환해 출력한다

$ # a => 0x61 => 0110 0001
$ echo -n a | xxd -b
00000000: 01100001                                               a
$ # k => 0x6b => 0110 1011
$ echo -n k | xxd -b
00000000: 01101011                                               k

한글의 바이트 확인

UTF-8 이라면 한 글자가 3바이트라는 것을 확인할 수 있다.

$ echo $LANG
en_US.UTF-8

$ echo -n '안' | xxd
00000000: ec95 88                                  ...

$ echo -n '안녕' | xxd
00000000: ec95 88eb 8595                           ......

$ echo -n '안녕하' | xxd
00000000: ec95 88eb 8595 ed95 98                   .........

$ echo -n '안녕하세' | xxd
00000000: ec95 88eb 8595 ed95 98ec 84b8            ............

$ echo -n '안녕하세요' | xxd
00000000: ec95 88eb 8595 ed95 98ec 84b8 ec9a 94    ...............
$ echo -n '가' | xxd
00000000: eab0 80                                  ...

$ echo -n '힣' | xxd
00000000: ed9e a3                                  ...

함께 읽기

  • [[/vim/xxd-hex-edit]]