您的位置:首页 > 运维架构 > Shell

shell读取文件前4个字节转换为16进制

2014-04-13 20:25 423 查看
这几天有一个功能,通过PHP读取文件的前四个字节并转换为16进制,并通过返回的16进制字符串,调用不同的命令对文件进行处理操作;当文件的数量超过1000之后,处理速度特别慢,php代码如下:
<?php
$handle=fopen('test.txt','r');
$head4=fread($handle,4);
fclose($handle);
$hex=bin2hex($head4);
?>
后来想到改用shell的方式处理,以为能很快解决的,在网上找了很多方法,都没有直接将ASCII码转换为十六进制的函数,后来采用管道命令截取方式,代码如下:
#读取文件的前4个字节,并获取16进制的值
od -N4 -t x1 test.txt|head -1|sed -e 's/0000000//g' -e 's/ //g'|tr -d '\n'
做了一下简单测试,跟php读取返回的值一样。效率上比使用php的效率要高很多

本文出自 “随网互联” 博客,请务必保留此出处http://suiwnet.blog.51cto.com/2492370/1394959
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: