как преобразовать строку в двоичный целочисленный файл с помощью командной строки в Linux
Вопрос
Что я хочу, так это взять целое число, представленное в виде строки, например "1234", и преобразовать его в файл с именем int, содержащий 32-разрядное целое число с большим порядковым числом со значением 1234.
Единственный способ, который я придумал, чтобы сделать это, - это что-то вроде
echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int
что немного неприятно!
Кто-нибудь знает способ получше?
Решение 2
Хорошо, хорошо видя, что Марк Уильямс, кажется, прошел хорошо, я опубликую исправленную версию его ответа
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