как преобразовать строку в двоичный целочисленный файл с помощью командной строки в Linux

StackOverflow https://stackoverflow.com/questions/422840

  •  05-07-2019
  •  | 
  •  

Вопрос

Что я хочу, так это взять целое число, представленное в виде строки, например "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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top