GNU/Linux >> Tutoriales Linux >  >> Linux

Bash Script:¿Comprobar si un archivo es un archivo de texto?

Cerrado. Esta pregunta está fuera de tema. Actualmente no está aceptando respuestas.

¿Quieres mejorar esta pregunta? Actualice la pregunta para que esté relacionada con el tema de Unix y Linux Stack Exchange.

Cerrado hace 5 años.


Mejorar esta pregunta

Estoy escribiendo un script bash basado en un menú, una de las opciones del menú es enviar un correo electrónico con un archivo de texto adjunto. Tengo problemas para verificar si mi archivo es un archivo de texto. Esto es lo que tengo:

fileExists=10
until [ $fileExists -eq 9 ]
do
  echo "Please enter the name of the file you want to attach: "
  read attachment
  isFile=$(file $attachment | cut -d -f2)
  if [[ $isFile = "ASCII" ]]
    then
      fileExists=0
    else
      echo "$attachment is not a text file, please use a different file"
  fi
done

Sigo recibiendo el corte de error:el delimitador debe ser un solo carácter.

Respuesta aceptada:

El problema ocurre en cut -d -f2 . Cámbielo a cut -d -f2 .

Para cut , los argumentos se ven así:

# bash: args(){ for i; do printf '%q \n' "$i"; done; }
# args cut -d -f2
cut 
-d -f2 

Y aquí esta el problema. Escapó el espacio a un espacio literal en lugar de un delimitador entre argumentos en su shell, y no agregó un espacio adicional, por lo que todo -d -f2 parte aparece como un argumento. Debes agregar un espacio adicional para que -d y -f2 aparecen como dos argumentos.

Para evitar confusiones, muchas personas usan comillas como -d' ' en su lugar.

P.D.:En lugar de usar archivos y hacer que todo sea ASCII, prefiero usar

if file "$attachment2" | grep -q text$; then
    # is text
else
    # file doesn't think it's text
fi

Linux
  1. ¿Cómo resaltar los scripts de Bash en Vim?

  2. ¿Cómo verificar syslog en Bash en Linux?

  3. Ejecutar archivo de texto como comandos en Bash

  4. ¿Cómo verificar si un archivo está vacío en Bash?

  5. Cómo incluir un archivo en un script de shell bash

Cómo verificar si existe un archivo o directorio en Bash

Cómo verificar si existe un archivo o directorio en Bash

35 ejemplos de secuencias de comandos Bash

Cómo verificar si existe un archivo o directorio en Bash Shell

¿Cómo verifico la sintaxis de un script Bash sin ejecutarlo?

Bash loop descomprimir secuencia de comandos de archivo con contraseña