es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Validar si una cadena de texto es ASCII o no ASCII en Linux.

Tengo una cadena (no guardada en un archivo) que puede contener caracteres ASCII o no ASCII. Quiero determinar si la cadena dada contiene caracteres ASCII o no ASCII en Linux. Estoy pasando la cadena por la línea de comandos y NO en un archivo. Intenté usar grep pero grep espera un archivo en lugar de una cadena.

Ejemplo 1

Entrada

abc$@

Salida Esperada

La cadena dada es ASCII.

Ejemplo 2

Entrada

testt ‘’Lab

Salida Esperada

La cadena dada NO es ASCII.

Agradezco tu ayuda.

Gracias

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para determinar si una cadena contiene caracteres ASCII o no ASCII en Linux, puedes utilizar el comando file junto con echo para pasar la cadena como entrada. Aquí tienes cómo hacerlo:

    1. Primero, asegúrate de tener instalado el comando file. Esto se puede hacer ejecutando sudo apt-get install file en Ubuntu o yum install file en CentOS/RHEL.
    2. A continuación, utiliza el comando echo para pasar la cadena como entrada a file. Por ejemplo, si tu cadena es “abc$@”, deberías ejecutar:

      echo "abc$@" | file -
      

      Observa el uso del carácter guion (-) como argumento de nombre de archivo para file, lo cual le indica que lea desde la entrada estándar.

    3. La salida de file debería indicar si la cadena contiene caracteres ASCII o no ASCII. Si la cadena es ASCII, la salida se verá algo así:

      /dev/stdin: ASCII text
      

      Si la cadena contiene caracteres no ASCII, la salida indicará el tipo de codificación, como por ejemplo:

      /dev/stdin: UTF-8 Unicode text
      

      En este caso, la cadena no es ASCII.

      Ten en cuenta que incluso las cadenas ASCII pueden contener caracteres no imprimibles, como códigos de control, los cuales pueden no ser visibles en la salida de la consola.

Comments are closed.