Как объединить несколько файлов на основе даты изменения и игнорировать первую строку в каждом файле

Как объединить несколько файлов на основе даты изменения и игнорировать первую строку в каждом файле

У меня есть следующие файлы:

-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

Содержимое файлов содержит строку описания, за которой следуют данные, разделенные запятыми. Например:

Тест1:

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

Тест2:

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

Может ли кто-нибудь предложить команду, которая объединит указанные выше файлы на основе даты изменения, игнорируя первую строку в файле, которая является описанием (ID, Имя, Работа, Адрес).

Например, вот что я хотел бы получить после скрипта:

May_1_file_after_concatenate:

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

То же самое для May5_file_after_concatenate. Каталог, который у меня есть, будет содержать много миллионов файлов. Мне нужно, чтобы он автоматически сортировался по дате изменения и объединял их соответствующим образом.

У меня Centos 7.

решение1

В bash, вы можете использовать следующий скрипт:

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

Он перебирает указанные файлы, извлекает из них дату последнего изменения, а затем добавляет все, начиная со строки 2, в файл, названный по дате.

Если необходимо поместить в командную строку или параметры два множества файлов, последовательно вызывайте скрипт для меньших групп файлов (с помощью xargsили вручную).

Преобразование формата даты должно быть простым :-)

Связанный контент