首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于将无符号int32转换为高字节并写入文件的unix脚本

用于将无符号int32转换为高字节并写入文件的unix脚本
EN

Stack Overflow用户
提问于 2019-04-11 01:51:46
回答 1查看 366关注 0票数 0

我想在unix机器上编写一个脚本(bash/awk/gawk/任何其他标准脚本),它将一个无符号整数作为程序参数,然后将其转换为高字节,并将字节写入一个新文件。

如下所示:./writebytes 5 outputfile.txt,其中5是我希望在转换为big endian后以字节为单位写入outputfile.txt的值

现在,如果我执行十六进制转储outputfile.txt,输出应该如下所示

代码语言:javascript
复制
0000000 0005 0000
0000004

我对unix和脚本编程非常陌生。然后,我希望能够以人类可读的简单十进制格式输出outputfile.txt的内容。

代码语言:javascript
复制
./readbytes outputfile.txt

输出为5

EN

回答 1

Stack Overflow用户

发布于 2019-04-11 04:01:03

这可以使用Perl一行程序来完成,我认为您正在寻找类似于下面这样的东西

代码语言:javascript
复制
$ hexdump <(perl -e ' $x=pack("I",5) ; print $x ')
0000000 0005 0000
0000004

如果您想获取作为参数

代码语言:javascript
复制
$ data=5
$ perl -ne ' $x=pack("I",$_) ; print $x '  <<< "$data" > outfile.txt

$ hexdump outfile.txt
0000000 0005 0000
0000004

$ wc outfile.txt
0 0 4 outfile.txt

要在outfile.txt中读回它,同样可以使用Perl

代码语言:javascript
复制
$ perl -ne ' $a=unpack("I",$_); print $a ' outfile.txt
5
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55618608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档