Linux에서 명령 줄을 사용하여 문자열을 바이너리 정수 파일로 변환하는 방법
문제
내가 원하는 것은 정수를 문자열로 표시하여 "1234"로 표시하고 값 1234를 가진 32 비트 Big Endian Integer를 포함하는 int라는 파일로 변환하는 것입니다.
내가 이것을하기 위해 알아 낸 유일한 방법은
echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int
조금 불쾌합니다!
누구든지 더 나은 방법을 알고 있습니까?
해결책 2
마크 윌리엄스가 AWOL에 갔다는 것을 알았습니다. 나는 그의 대답의 수정 된 버전을 게시 할 것입니다.
echo 1234 | perl -e 'print pack("N", <STDIN>); > int
다른 팁
약간 간단한 방법은 다음과 같습니다.
printf "0: %08X" 1234 | xxd -r > int
이것은 내 시스템에서 동일한 출력을 생성하는 것으로 보입니다. 확인하십시오 perldoc -f pack
.
echo '1234' | perl -e 'print pack("nn", 0,<STDIN>);' > int
제휴하지 않습니다 StackOverflow