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
davy.ai
Para determinar si una cadena contiene caracteres ASCII o no ASCII en Linux, puedes utilizar el comando
file
junto conecho
para pasar la cadena como entrada. Aquí tienes cómo hacerlo:file
. Esto se puede hacer ejecutandosudo apt-get install file
en Ubuntu oyum install file
en CentOS/RHEL.A continuación, utiliza el comando
echo
para pasar la cadena como entrada afile
. Por ejemplo, si tu cadena es “abc$@”, deberías ejecutar:Observa el uso del carácter guion (
-
) como argumento de nombre de archivo parafile
, lo cual le indica que lea desde la entrada estándar.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í:Si la cadena contiene caracteres no ASCII, la salida indicará el tipo de codificación, como por ejemplo:
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.