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)
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)
$ 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.
Byłeś zbyt szybki, strona podręcznika zamknięta ;-) – Benj
Masz kilka opcji
$ printf hello | xxd
0000000: 6865 6c6c 6f hello
Zobacz także: Ascii/Hex convert in bash
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
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.
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
możliwe dupe http://stackoverflow.com/questions/5724761/ascii-hex-convert -in-bash – mrchampe