用shell处理二进制文件(转)[@more@]我以前写过一个shell script,其中有一部分是转换十六进制到十进制。道理差不多,应该和这个有点象,是Solaris环境下的。 用来转换 Solaris下的Sybase interfaces file 为windows环境下的Sybase的sql.ini。[code:1:8fab55483b]#!/bin/sh# This is a script to convert the interfaces file of sybase server to sql.ini ofsybase client on PC.# Illusion/ICIL# Intialize sql.ini(echo ";; Sybase Interfaces file"echo ";;"echo ";; []"echo ";; =,"echo ";;"echo ";; Examples:"echo ";; [JUPITER]"echo ";; QUERY=NLMSNMP,JUPITERpipesybasequery"echo ";; WIN3_QUERY=WNLNMP,JUPITERpipesybasequery"echo ";; ")>/tmp/sql# May ignore the backup server for sybaseservers=`grep -i '^[a-z]' /opt/sybase11/interfaces | sed '/_BACKUP/d'`for server in ${servers}; doecho "Converting ${server} info ..."server_info=`grep -A 2 ^"${server}"$ /opt/sybase11/interfaces`master_info=`echo "${server_info}" | grep "master" | awk '{ print $5 }'`# May use a perl script to convert the number of IP too.master_ip1=`echo "${master_info}" | cut -c11-12`master_ip1=`echo "${master_ip1}" | tr '[a-z]' '[A-Z]'`master_ip1=`echo "obase=10; ibase=16; ${master_ip1}" | bc`master_ip2=`echo "${master_info}" | cut -c13-14`master_ip2=`echo "${master_ip2}" | tr '[a-z]' '[A-Z]'`master_ip2=`echo "obase=10; ibase=16; ${master_ip2}" | bc`master_ip3=`echo "${master_info}" | cut -c15-16`master_ip3=`echo "${master_ip3}" | tr '[a-z]' '[A-Z]'`master_ip3=`echo "obase=10; ibase=16; ${master_ip3}" | bc`master_ip4=`echo "${master_info}" | cut -c17-18`master_ip4=`echo "${master_ip4}" | tr '[a-z]' '[A-Z]'`master_ip4=`echo "obase=10; ibase=16; ${master_ip4}" | bc`master_ip=`echo "${master_ip1}.${master_ip2}.${master_ip3}.${master_ip4}`master_port=`echo "${master_info}" | cut -c7-10`master_port=`echo "${master_port}" | tr '[a-z]' '[A-Z]'`master_port=`echo "obase=10; ibase=16; ${master_port}" | bc`# add the server info to sql.ini(echo "[${server}]"echo "master=NLWNSCK,${master_ip},${master_port}"echo "query=NLWNSCK,${master_ip},${master_port} ")>>/tmp/sqldone# convert to PC filesystemunix2dos /tmp/sql > /tmp/sql.ini[/code:1:8fab55483b
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8225414/viewspace-944837/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8225414/viewspace-944837/