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 xargs
o manualmente).
Convertir el formato de fecha debería ser fácil :-)