Pure BASH Conversione di stringa sequenza esadecimale stampabile e ritorno
str2hex_echo() {
# USAGE: hex_repr=$(str2hex_echo "ABC")
# returns "0x410x420x43"
local str=${1:-""}
local fmt="0x%x"
local chr
local -i i
for i in `seq 0 $((${#str}-1))`; do
chr=${str:i:1}
printf "${fmt}" "'${chr}"
done
}
hex2str_echo() {
# USAGE: ASCII_repr=$(hex2str_echo "0x410x420x43")
# returns "ABC"
echo -en "'${1:-""//0x/\\x}'"
}
SPIEGAZIONE
ASCII-> hex: La salsa segreta di conversione efficiente dal carattere al suo codice ASCII sottostante è caratteristica in printf
che, con il formato specificatori non stringhe prende protagonista essere un singolo o doppio virgolette come un ordine per produrre il codice ASCII sottostante del simbolo successivo. Questo comportamento è documentato in GNU BASH reference, ma è anche esposto in dettaglio insieme a molte altre altre utility meravigliose nella pagina wiki di Greg (nota anche come GreyCat), BashFAQ/071, dedicata alle conversioni char-ASCII.
Benvenuti in StackOverflow. [Avete già provato qualcosa?] (Http://whathaveyoutried.com) Le persone sono più desiderose di aiutare se si mostrano alcuni sforzi di ricerca prima di chiedere. Altrimenti, apparirà come un [aiuto vampiro] (http://slash7.com/2006/12/22/vampires/) – JMax
dupe possibile di http://stackoverflow.com/questions/5724761/ascii-hex-convert -in-bash – mrchampe