¿Cómo enumero los archivos en una carpeta que muestra el nombre, la hora y la cantidad de filas en una línea con bash?

¿Cómo me fusiono? ls con wc -l obtener el nombre de un archivo, la hora de modificación y el número de filas en un archivo?

gracias!

preguntado el 03 de mayo de 12 a las 21:05

1 Respuestas

Hay varias formas de abordar esto desde el shell o el lenguaje de programación de su elección, pero realmente no hay una forma "correcta" de hacerlo, ya que necesita tanto estadísticas como leer cada archivo para formar su salida personalizada. Puede hacer esto sin canalizaciones dentro de un bucle for básico usando la sustitución de comandos:

custom_ls () {
    for file in "$@"; do
        echo "$file, $(date -r "$file" '+%T'), $(wc -l < "$file")"
    done
}

Esto generará una salida como esta:

$ custom_ls .git*
.gitconfig, 14:02:56, 44
.gitignore, 17:07:13, 21

Sin duda, hay otras formas de hacerlo, pero la sustitución de comandos permite que la intención de la cadena de formato sea breve y clara, sin canalizaciones complejas ni variables temporales.

contestado el 03 de mayo de 12 a las 23:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.