Leer el primer archivo en una lista de archivos dentro de un directorio

Leer el primer archivo en una lista de archivos dentro de un directorio

Quería leer el primer archivo de texto en cada directorio usando "cat o vi". Para aclarar el tema:

La Carpeta_A1 contiene 1000 archivos de texto. Los archivos denominados en el siguiente formato "i.1351". Todos los nombres de archivos comienzan con "i". y el número es diferente entre estos archivos.

Tengo 500 carpetas, cada una contiene ~1000 archivos de texto (*.txt) y quiero leer solo el primer archivo de cada carpeta. ¿Cómo puedo hacer eso?

Respuesta1

Si realmente desea el primer archivo en el orden del directorio, y asumiendo que todos los nombres de las carpetas comienzan con Folder_, todas las entradas que comienzan con Folder_son directorios y todas las entradas que comienzan con i.son archivos:

for d in Folder_*; do
    for f in "$d"/i.*; do
        cat -- "$f"
        break
    done
done

Respuesta2

Esto es un poco lento debido al tipo.

find . -type f | sort -V | 
awk -F/ '{ dir=substr($0,1,length($0)-length($NF));
           if(last==dir)next; last=dir; print}' |
| xargs cat

El -Ves ordenar i.2antes i.10. Imprime awkel nombre del archivo cada vez que cambia el directorio. (Se supone que los nombres no tienen espacios).

información relacionada