帅帅男孩 发表于 2018-8-19 10:45:59

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

  这几天有一个功能,通过PHP读取文件的前四个字节并转换为16进制,并通过返回的16进制字符串,调用不同的命令对文件进行处理操作;当文件的数量超过1000之后,处理速度特别慢,php代码如下:

  后来想到改用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的效率要高很多


页: [1]
查看完整版本: shell读取文件前4个字节转换为16进制