2012-10-11 18 views
11

zastanawiałeś się, czy ktoś mógłby mi pomóc w konwersji ascii na hex w bashu. Przykładowy kod:bash ascii na hex

#!/bin/bash 
STR = "hello" 
#Convert to hex 
HEXVAL = $STR #(in hex here?) 

Chcę hexval mieć wartość: 68656C6C6F (cześć w hex)

+1

Witamy w stackoverflow. [Czy próbowałeś już czegokolwiek?] (Http://whathaveyoutried.com) Ludzie chętniej pomagają, jeśli pokażesz trochę wysiłku badawczego, zanim zapytasz. W przeciwnym razie pojawi się jako [pomoc wampira] (http://slash7.com/2006/12/22/vampires/) – JMax

+0

możliwe dupe http://stackoverflow.com/questions/5724761/ascii-hex-convert -in-bash – mrchampe

Odpowiedz

17
$ STR="hello" 
$ HEXVAL=$(xxd -pu <<< "$STR") 
$ echo "$HEXVAL" 
6C6C6568A6F 

Lub:

$ HEXVAL=$(hexdump -e '"%X"' <<< "$STR") 
$ echo "$HEXVAL" 
6C6C6568A6F 

Ostrożnie z '"%X"'; ma zarówno pojedyncze cytaty, jak i podwójne cudzysłowy.

+0

Byłeś zbyt szybki, strona podręcznika zamknięta ;-) – Benj

0

oto jedna wkładka (trochę skomplikowane, ale działa dobrze):

#!/bin/bash 

echo '0x'"`echo $1 | hexdump -vC | awk 'BEGIN {IFS="\t"} {$1=""; print }' | awk '{sub(/\|.*/,"")}1' | tr -d '\n' | tr -d ' '`" | rev | cut -c 3- | rev 
0

Czysta BASH konwertorowe sznurka do drukowana sekwencja szesnastkowa iz powrotem

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}'" 
} 

WYJAŚNIENIE

ASCII> hex: Sekret sos skutecznej konwersji z charakterem jego bazowego kodu ASCII jest cechą printf, że z formatem specyfikatorami non-strunowych, zajmuje wiodącą postacią będącą pojedyncze lub podwójne cudzysłów jako zamówienie do utworzenia kodu ASCII leżącego u podstaw następnego symbolu. To zachowanie jest udokumentowane w GNU BASH reference, ale jest również szczegółowo ujawnione wraz z wieloma innymi wspaniałymi narzędziami na stronie wiki Grega (znanej również pod nazwą GreyCat) poświęconej konwersjom char-ASCII.