使用灰,我有一個IP地址作爲變量Linux的shell:寫IP二進制文件
IP_ADDR=192.168.1.234
我想寫的4個字節的二進制文件,後來重讀他們和改革IP字符串。
我有以下的工作解決方案,但它似乎很hacky - 任何更好的建議?
寫:
IP_ADDR=192.168.1.234
serialHex=`printf '%02X' ${IP_ADDR//./ } | sed s/'\(..\)'/'\\\\x\1'/g`
echo -n -e $serialHex | dd bs=1 of=/path/to/file seek=19 &> /dev/null
注尋求= 19表示其中在二進制文件(在字節19)寫
閱讀:
hexValues=`od -j 19 --read-bytes=4 --address-radix=n -t x1 /path/to/file`
set $hexValues
for w; do echo -n "$((0x$w))."; done | sed s/.$//
*「Note seek = 19 ...'* - 今天你不在乎,但如果你想要一個C程序讀取這個文件,那麼你應該提前計劃並將這個32位值對齊一個32位對齊(例如,使用字節偏移20)。應該對齊多字節二進制數據以便於讀入數據結構,尤其是在RISC拱門上。 – sawdust