GNU/Linux >> Tutoriales Linux >  >> Linux

Ejemplos de comandos OD de Linux (volcado octal)

El comando od en Linux se usa para generar el contenido de un archivo en diferentes formatos, siendo el formato octal el predeterminado.

Este comando es especialmente útil cuando se depuran scripts de Linux para cambios o caracteres no deseados.

Este artículo explica cómo usar el comando od con algunos ejemplos.

La sintaxis básica de este comando es:

od [OPTION]... [FILE]...

1. Muestra el contenido del archivo en formato octal usando la opción -b

El siguiente es el archivo de entrada utilizado para este ejemplo:

$ cat input
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Ahora ejecute el comando od en este archivo de entrada.

$ od -b input
0000000 061 012 062 012 063 012 064 012 065 012 066 012 067 012 070 012
0000020 071 012 061 060 012 061 061 012 061 062 012 061 063 012 061 064
0000040 012 061 065 012 061 066 012 061 067 012 061 070 012 061 071 012
0000060 062 060 012
0000063

Entonces vemos que la salida se produjo en formato octal. La primera columna en la salida de od representa el desplazamiento de bytes en el archivo.

2. Muestra el contenido del archivo en formato de caracteres usando la opción -c

Usando el mismo archivo de entrada (como en el ejemplo 1 anterior).

$ od -c input
0000000   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n
0000020   9  \n   1   0  \n   1   1  \n   1   2  \n   1   3  \n   1   4
0000040  \n   1   5  \n   1   6  \n   1   7  \n   1   8  \n   1   9  \n
0000060   2   0  \n
0000063

Entonces vemos que la salida se produjo en el formato de caracteres.

3. Muestre los desplazamientos de bytes en diferentes formatos usando la opción -A

El desplazamiento de bytes se puede mostrar en cualquiera de los siguientes formatos:

  • Hexadecimal (usando -x junto con -A)
  • Octal (usando -o junto con -A)
  • Decimal (usando -d junto con -A)

Los siguientes son ejemplos de compensaciones en diferentes formatos:

$ od -Ax -c input
000000   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n
000010   9  \n   1   0  \n   1   1  \n   1   2  \n   1   3  \n   1   4
000020  \n   1   5  \n   1   6  \n   1   7  \n   1   8  \n   1   9  \n
000030   2   0  \n
000033
$ od -Ad -c input
0000000   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n
0000016   9  \n   1   0  \n   1   1  \n   1   2  \n   1   3  \n   1   4
0000032  \n   1   5  \n   1   6  \n   1   7  \n   1   8  \n   1   9  \n
0000048   2   0  \n
0000051
$ od -Ao -c input
0000000   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n
0000020   9  \n   1   0  \n   1   1  \n   1   2  \n   1   3  \n   1   4
0000040  \n   1   5  \n   1   6  \n   1   7  \n   1   8  \n   1   9  \n
0000060   2   0  \n
0000063

Entonces vemos que según la entrada suministrada a la opción -A, la primera columna (que contiene el desplazamiento de bytes) se muestra en diferentes formatos.

4. No mostrar información de compensación usando la opción '-An'

Considere el siguiente ejemplo:

$ od -An -c input
   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n
   9  \n   1   0  \n   1   1  \n   1   2  \n   1   3  \n   1   4
  \n   1   5  \n   1   6  \n   1   7  \n   1   8  \n   1   9  \n
   2   0  \n

Entonces vemos que la información relacionada con el desplazamiento de bytes no se mostró.

5. Muestra la salida después de saltar algunos bytes

Esto se logra usando la opción -j. Aquí hay un ejemplo:

$ od -j9 -c input
0000011  \n   6  \n   7  \n   8  \n   9  \n   1   0  \n   1   1  \n   1
0000031   2  \n   1   3  \n   1   4  \n   1   5  \n   1   6  \n   1   7
0000051  \n   1   8  \n   1   9  \n   2   0  \n
0000063

Si comparamos la salida anterior con la salida del ejemplo 2, podemos ver que se omitieron los 9 bytes iniciales de la salida.

6. Mostrar bytes limitados en la salida usando la opción -N

Esto es lo opuesto a la opción -j discutida en el ejemplo 5 anterior. Aquí hay un ejemplo:

$ od -N9 -c input
0000000   1  \n   2  \n   3  \n   4  \n   5
0000011

Entonces vemos que solo se mostraron 9 bytes en la salida.

7. Muestra la salida como enteros decimales usando la opción -i

Considere el siguiente ejemplo:

$ od -i input
0000000   171051569   171182643   171313717   171444791
0000020   808520249   170995978   822751793   875629107
0000040   171258122   822752817   942737975   171520266
0000060      667698
0000063

Si combinamos -i con -b, entonces da más información sobre cómo se muestran los enteros decimales. Aquí hay un ejemplo:

$ od -ib input
0000000       171051569       171182643       171313717       171444791
        061 012 062 012 063 012 064 012 065 012 066 012 067 012 070 012
0000020       808520249       170995978       822751793       875629107
        071 012 061 060 012 061 061 012 061 062 012 061 063 012 061 064
0000040       171258122       822752817       942737975       171520266
        012 061 065 012 061 066 012 061 067 012 061 070 012 061 071 012
0000060          667698
        062 060 012
0000063

Entonces, la salida anterior muestra cómo la salida octal se muestra como salida entera.

8. Muestra la salida como unidades hexadecimales de 2 bytes usando la opción -x

Considere el siguiente ejemplo:

$ od -x input
0000000 0a31 0a32 0a33 0a34 0a35 0a36 0a37 0a38
0000020 0a39 3031 310a 0a31 3231 310a 0a33 3431
0000040 310a 0a35 3631 310a 0a37 3831 310a 0a39
0000060 3032 000a
0000063

Entonces vemos que la salida se mostró en términos de unidades hexadecimales de 2 bytes.

9. Muestra el contenido como unidades octales de dos bytes usando la opción -o

Considere el siguiente ejemplo:

$ od -o input
0000000 005061 005062 005063 005064 005065 005066 005067 005070
0000020 005071 030061 030412 005061 031061 030412 005063 032061
0000040 030412 005065 033061 030412 005067 034061 030412 005071
0000060 030062 000012
0000063

Tenga en cuenta que el comando od muestra el mismo resultado cuando se ejecuta sin ninguna opción. Aquí hay un ejemplo:

$ od  input
0000000 005061 005062 005063 005064 005065 005066 005067 005070
0000020 005071 030061 030412 005061 031061 030412 005063 032061
0000040 030412 005065 033061 030412 005067 034061 030412 005071
0000060 030062 000012
0000063

10. Personaliza el ancho de salida usando la opción -w

Considere el siguiente ejemplo:

$ od -w1 -c -Ad input
0000000   1
0000001  \n
0000002   2
0000003  \n
0000004   3
0000005  \n
0000006   4
0000007  \n
0000008   5
0000009  \n
0000010   6
0000011  \n
0000012   7
0000013  \n
0000014   8
0000015  \n
0000016   9
0000017  \n
0000018   1
0000019   0
0000020  \n
0000021   1
*
0000023  \n
0000024   1
0000025   2
0000026  \n
0000027   1
0000028   3
0000029  \n
0000030   1
0000031   4
0000032  \n
0000033   1
0000034   5
0000035  \n
0000036   1
0000037   6
0000038  \n
0000039   1
0000040   7
0000041  \n
0000042   1
0000043   8
0000044  \n
0000045   1
0000046   9
0000047  \n
0000048   2
0000049   0
0000050  \n
0000051

Entonces vemos que el ancho de salida se redujo a 1 en la salida anterior.

11. Salida de duplicados usando la opción -v

Como se puede observar en el resultado del ejemplo 10 anterior, se imprimió un *. Esto se hace para suprimir la salida de líneas que son iguales o duplicadas. Pero a través de la opción -v estas líneas también se pueden imprimir. Aquí hay un ejemplo:

$ od -w1 -v -c -Ad input
0000000   1
0000001  \n
0000002   2
0000003  \n
0000004   3
0000005  \n
0000006   4
0000007  \n
0000008   5
0000009  \n
0000010   6
0000011  \n
0000012   7
0000013  \n
0000014   8
0000015  \n
0000016   9
0000017  \n
0000018   1
0000019   0
0000020  \n
0000021 1 
0000022 1
0000023  \n
0000024   1
0000025   2
0000026  \n
0000027   1
0000028   3
0000029  \n
0000030   1
0000031   4
0000032  \n
0000033   1
0000034   5
0000035  \n
0000036   1
0000037   6
0000038  \n
0000039   1
0000040   7
0000041  \n
0000042   1
0000043   8
0000044  \n
0000045   1
0000046   9
0000047  \n
0000048   2
0000049   0
0000050  \n
0000051

12. Acepte la entrada desde la línea de comando usando –

Considere el siguiente ejemplo:

$ od -c -
The Geek Stuff0000000   T   h   e       G   e   e   k       S   t   u   f   f
0000016

Entonces vemos que primero la entrada se proporcionó a través de stdin y luego, después de presionar ctrl+d un par de veces, se mostró la salida del comando od.

13. Mostrar caracteres ocultos usando el comando od

Considere la siguiente entrada:

The Geek ^MStuff

Si se imprime un archivo que contiene la cadena anterior con el comando cat, se ve el siguiente resultado:

 $ cat input
Stuffeek

Pero como puede ver, esto no es exactamente lo que contiene el archivo.

Ahora usemos el comando od con la opción -c sobre esto:

$ od -c input
0000000   T   h   e       G   e   e   k      \r   S   t   u   f   f  \n
0000020

Entonces, el comando od muestra claramente que se insertó un retorno de carro sin salto de línea entre las cadenas debido a que el comando cat mostraba una salida desordenada.


Linux
  1. Ejemplos de comandos sa en Linux

  2. w Ejemplos de comandos en Linux

  3. Ejemplos de comandos ac en Linux

  4. Ejemplos de comandos df en Linux

  5. Ejemplos de comandos du en Linux

9 ejemplos de comandos tee en Linux

9 ejemplos de comandos diff en Linux

Comando ip de Linux con ejemplos

15 comandos ps de Linux con ejemplos

8 ejemplos de comandos LDD en Linux

Ejemplos de comandos id en Linux