2015-01-30 2 views
8

텍스트 (문자열) 형식의 이진 코드가 있습니다. cat과 echo 같은 linux 명령을 사용하여 이진 파일로 변환하는 방법은 무엇입니까?리눅스 명령을 사용하여 텍스트 파일을 이진 파일로 변환하는 방법

이진 test.bin 만들기와 함께 명령을 따르는 명령을 알고 있습니다. 그러나이 16 진수 코드가 다른 .txt 파일에 있다면 어떻게 될까요? 텍스트 파일의 내용을 "에코"하여 "바이너리 파일을 생성하는"방법은 무엇입니까?

# echo -e "\x00\x001" > test.bin

답변

15

사용 xxd -r. 16 진수 덤프를 2 진 표현으로 되돌립니다.

sourcesource

편집 다음 -p 매개 변수도 매우 유용합니다. "일반"16 진수 값을 허용하지만 공백과 행의 변경은 무시합니다.

그래서, 당신은이 같은 일반 텍스트 덤프가있는 경우 :

xxd -r -p text_dump > binary_dump 

그리고 다음과 같은 유용한 출력을 얻을 :

echo "0000 4865 6c6c 6f20 776f 726c 6421 0000" > text_dump 

당신은 바이너리로 변환 할 수 있습니다

xxd binary_dump 
+0

덕분에 따라서 텍스트 파일 file.txt을 만들! – 1010

0

xxd 외에도 패키지/명령도 확인해야합니다.및 hexdump. 모두 비슷하지만, 각각 원하는대로 출력을 맞출 수있는 약간 다른 옵션을 제공합니다. 예를 들어 hexdump -C은 전통적인 16 진수 덤프이며 ASCII과 함께 변환됩니다.

0

파일에 텍스트 또는 텍스트가 긴 경우 binmake 도구를 사용하면 텍스트 형식으로 일부 이진 데이터를 설명하고 이진 파일을 생성하거나 표준 출력으로 출력 할 수 있습니다. 엔디안 및 숫자 형식을 변경하고 주석을 허용합니다.

기본 형식은 16 진수이지만 이에 국한되지는 않습니다.

먼저 얻고 binmake 컴파일 : 당신은 파이프가 stdinstdout를 사용 할 수

$ git clone https://github.com/dadadel/binmake 
$ cd binmake 
$ make 

:

$ echo '32 decimal 32 61 %x20 %x61' | ./binmake | hexdump -C 
00000000 32 20 3d 20 61         |2 = a| 
00000005 

또는 파일을 사용합니다.

# an exemple of file description of binary data to generate 
# set endianess to big-endian 
big-endian 

# default number is hexadecimal 
00112233 

# man can explicit a number type: %b means binary number 
%b0100110111100000 

# change endianess to little-endian 
little-endian 

# if no explicit, use default 
44556677 

# bytes are not concerned by endianess 
88 99 aa bb 

# change default to decimal 
decimal 

# following number is now decimal 


# strings are delimited by " or ' 
"this is some raw string" 

# explicit hexa number starts with %x 
%xff 

바이너리 파일을 file.bin 생성 : 편집 @Humpparitari에 대한

$ ./binmake file.txt file.bin 
$ hexdump file.bin -C 
00000000 00 11 22 33 4d e0 77 66 55 44 88 99 aa bb 7b 74 |.."3M.wfUD....{t| 
00000010 68 69 73 20 69 73 20 73 6f 6d 65 20 72 61 77 20 |his is some raw | 
00000020 73 74 72 69 6e 67 ff        |string.| 
00000027 
관련 문제