GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo leer una cadena como número hexadecimal en Bash?

Tengo la línea bash:

expr substr $SUPERBLOCK 64 8

Que es volver a mí línea de cadena:

00080000

Sé que esto es, en realidad, un 0x00080000 en little-endian. ¿Hay alguna forma de crear una variable entera a partir de ella en bash en big-endian como 0x80000?

Respuesta aceptada:

Probablemente sea una mejor manera de hacer esto, pero se me ocurrió esta solución que convierte el número a decimal y luego a hexadecimal (y agrega manualmente el 0x ):

printf '0x%x\n' "$((16#00080000))"

Que podrías escribir como:

printf '0x%x\n' "$((16#$(expr substr "$SUPERBLOCK" 64 8)))"

Linux
  1. ¿Cómo crear una matriz de elementos únicos a partir de una cadena/matriz en Bash?

  2. Cómo dividir una cadena en Bash Script

  3. ¿Cómo pruebo si una variable es un número en Bash?

  4. En Bash, ¿cómo agrego una cadena después de cada línea en un archivo?

  5. Cómo agregar un ícono al indicador de bash

Cómo usar el comando de lectura Bash

Bash printf - Cómo imprimir una variable en Bash

Cómo leer archivos línea por línea en Bash

Cómo leer un archivo línea por línea en Bash

Cómo verificar si una cadena contiene una subcadena en Bash

Scripting de shell de Linux:número hexadecimal a cadena binaria