GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué significan los caracteres especiales en Echo {a..z}?

Sé que podemos imprimir una secuencia de letras del Alfabeto usando echo y lo experimenté un poco haciendo esto.

Secuencia de letras minúsculas

$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

Secuencia de letras mayúsculas

$ echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Secuencia de letras mayúsculas y minúsculas

$ echo {A..z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [  ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z

Ahora bien, esta es la parte que no entiendo. Ver los special charcaters de Z a a. Aquí hay una mejor vista.

$ echo {a..Z}
a ` _ ^ ]  [ Z

quiero saber

  1. ¿Cómo llegaron aquí estos caracteres especiales entre letras mayúsculas y minúsculas?

  2. ¿Qué significa esta secuencia de caracteres especiales?

  3. Además, ¿cómo solo imprimo esta secuencia en el medio?

Respuesta aceptada:

{A..z} se expande de acuerdo con la codificación de caracteres de su configuración regional actual, que probablemente sea ASCII o algo parecido. Si ejecuta man ascii (en caso de que tenga esto en su sistema) o eche un vistazo a una tabla ASCII, verá estos caracteres adicionales entre Z y a (lo mismo que obtienes cuando ejecutas echo {Z..a} en realidad).

Para obtener solo caracteres en mayúsculas/minúsculas, use

echo {A..Z} {a..z}

Para obtener solo los intermedios, puede usar

typeset -a foo=($(echo {Z..a}))
echo ${foo[@]:1:((${#foo[@]} - 2))}

que crea una matriz primero incluyendo los dos caracteres justo fuera del límite y luego accede a todos los elementos de la matriz además los caracteres de límite.

PD:averiguar por qué typeset -a foo=({Z..a}) no funciona se deja como ejercicio al lector 🙂


Linux
  1. Lo que un archivo de puntos de shell puede hacer por usted

  2. ¿Recursos para la programación de Shell portátil?

  3. ¿Qué significa "rc" en .bashrc?

  4. ¿Convertir la contraseña con caracteres especiales para usar con el script Expect?

  5. ¿Qué significa 'cd -'?

¿Qué significa "tty"?

¿Cómo escribir caracteres especiales?

Mostrar caracteres especiales ocultos en Vim

Qué buscar en un proveedor de alojamiento en la nube

SystemD - ¿Para qué se utiliza SystemD?

¿Qué hace echo $? ¿hacer?