Cómo fusionar varios archivos según la fecha de modificación e ignorar la primera línea de cada archivo

Cómo fusionar varios archivos según la fecha de modificación e ignorar la primera línea de cada archivo

Tengo los siguientes archivos:

-rw-r--r--  1 xyz xyz    122 May 01 01:00  Test1
-rw-r--r--  1 xyz xyz    122 May 01 01:00  Test2
-rw-r--r--  1 xyz xyz    122 May 05 05:00  Test3
-rw-r--r--  1 xyz xyz    122 May 05 05:00  Test4

El contenido de los archivos contiene una fila de descripción, seguida de datos, separados por comas. P.ej:

Prueba1:

ID, Name, Job, Address
1111, John, Janitor, 1234 Corson Ave

Prueba2:

ID, Name, Job, Address
2222, Tim, Cashier, 3245 Elliot St

¿Alguien puede sugerir un comando que concatene los archivos anteriores según la fecha de modificación ignorando la primera línea del archivo, que es la descripción (ID, nombre, trabajo, dirección)?

Por ejemplo, esto es lo que me gustaría después del guión:

May_1_file_after_concatenate:

1111, John, Janitor, 1234 Corson Ave
2222, Tim, Cashier, 3245 Elliot St

Lo mismo para May5_file_after_concatenate. El directorio que tengo contendrá muchos millones de archivos. Necesitaré que ordene automáticamente la fecha de modificación y los concatene en consecuencia.

Estoy en Centos 7.

Respuesta1

En bash, puede utilizar el siguiente script:

#! /bin/bash
for file in "$@" ; do
    date=$(stat -c%y "$file" | cut -f1 -d' ')
    tail -n+2 "$file" >> "$date"
done

Itera sobre los archivos dados, recupera la fecha de la última modificación y luego agrega todo, comenzando desde la línea 2, a un archivo nombrado por la fecha.

Si hay dos archivos que caben en una línea de comando o en parámetros, llame al script en grupos más pequeños de archivos de forma secuencial (con xargso manualmente).

Convertir el formato de fecha debería ser fácil :-)

información relacionada