"xxd" 명령을 출력과 결합

"xxd" 명령을 출력과 결합

다음과 같은 16진수 덤프가 있습니다.

00000000: 2345 5854 5241 530a 0a31 2e20 746f 2061  #EXTRAS..1. to a
00000010: 6464 2075 7365 723a 2060 7375 646f 2075  dd user: `sudo u
00000020: 7365 7261 6464 205b 7573 6572 6e61 6d65  seradd [username
00000030: 5d60 2061 6e64 2074 6865 6e20 6073 7564  ]` and then `sud
00000040: 6f20 7061 7373 7764 205b 7573 6572 6e61  o passwd [userna
00000050: 6d65 5d60 2074 6f20 6164 6420 7061 7373  me]` to add pass
00000060: 776f 7264 0a0a 312e 2074 6865 2063 6f6d  word..1. the com
00000070: 6d61 6e64 2061 626f 7665 2077 696c 6c20  mand above will 
00000080: 6e6f 7420 6164 6420 6120 686f 6d65 2064  not add a home d
00000090: 6972 6563 746f 7279 2066 6f72 2074 6865  irectory for the
000000a0: 2061 6464 6564 2075 7365 720a 0a31 2e20   added user..1. 
000000b0: 746f 2067 6976 6520 7468 6520 7573 6572  to give the user
000000c0: 2061 2068 6f6d 6520 6469 7265 6374 6f72   a home director
000000d0: 792c 2069 6e63 6c75 6465 2074 6865 2060  y, include the `
000000e0: 2d6d 6020 666c 6167 0a0a 0a              -m` flag...

vim은 그것이 235b라고 말했고, 모든 문자 수를 세기 위해 제가 작성한 간단한 명령은 243개의 문자가 있다는 것을 알려줍니다:

xxd -ps extras.md | sed 's/\(..\)/\1\n/g' | wc -l

또한 왼쪽의 메모리 열은 'd0 + 11바이트, 즉 219바이트'를 차지한다고 알려줍니다. 내가 올바르게 이해했다면.

누군가 219, 235, 243을 함께 연결하도록 도와줄 수 있나요? 아니면 내가 다 잘못하고 있다고 말해줘

이 방법도 작동하지만 해결 방법을 알려주세요.

답변1

16진수 덤프는 0x00(0)부터 0xEA(234)까지의 문자를 표시합니다. 총 235자가 됩니다.

또한 명령은 계산된 xxd -ps extras.md | sed 's/\(..\)/\1\n/g'8개의 추가 빈 줄(원래 출력의 끝)을 출력합니다 .xxdwc -l

해결 방법: 비어 있지 않은 줄만 계산하세요.

xxd -ps extras.md | sed 's/\(..\)/\1\n/g' | grep -c .

관련 정보