Cómo identificar archivos sin extensión en su nombre pero que tienen extensión en su propiedad, por ejemplo: nav.example.file que en realidad es un documento de texto

Cómo identificar archivos sin extensión en su nombre pero que tienen extensión en su propiedad, por ejemplo: nav.example.file que en realidad es un documento de texto

find -maxdepth 1 ! -name "*.*" -print

Esto no identifica nombres de archivos como INSSO.TEST.20100503.16400006, que es un documento xml.

Respuesta1

Si desea buscar archivos basándose en lo que contienen, no en sus nombres, deberá buscarlos. encontrarno lo hará por sí solo, pero puede decirle que ejecute otro programa que lo hará.

yo comenzaría conarchivo(1), que imprimirá alguna descripción del archivo. Si es útil para sus archivos XML, escribiría un script que imprima el nombre del archivo siencontrardice que es el tipo correcto. Luego invoque ese script para todos los archivos elegibles con:

find . -type f -exec my-xml-detector {} \;

Respuesta2

Si desea buscar archivos en el directorio actual que no tengan extensión o una extensión de más de 3 caracteres, o una extensión vacía, puede hacer:

find . ! -name . -prune ! -name '?*.[!.]' \
                        ! -name '?*.[!.][!.]' \
                        ! -name '?*.[!.][!.][!.]'

(Eso supone que ningún nombre de archivo contiene secuencias de bytes que no formen caracteres válidos).

información relacionada