J'ai les fichiers suivants:
-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
Le contenu des fichiers contient une ligne de description, suivie de données, séparées par des virgules. Par exemple:
Test1:
ID, Name, Job, Address
1111, John, Janitor, 1234 Corson Ave
Test2:
ID, Name, Job, Address
2222, Tim, Cashier, 3245 Elliot St
Quelqu'un peut-il suggérer une commande permettant de concaténer les fichiers ci-dessus en fonction de la date de modification tout en ignorant la première ligne du fichier, qui correspond à la description (ID, nom, travail, adresse).
C'est ce que je voudrais après le script:
May_1_file_after_concatenate:
1111, John, Janitor, 1234 Corson Ave
2222, Tim, Cashier, 3245 Elliot St
Même chose pour May5_file_after_concatenate
. Le répertoire que je possède contiendra plusieurs millions de fichiers. J'aurai besoin qu'il trie automatiquement la base à la date modifiée et les concatène en conséquence.
Je suis sur Centos 7.
Réponses:
Dans
bash
, vous pouvez utiliser le script suivant:Il parcourt les fichiers donnés, récupère la dernière date de modification, puis ajoute tout ce qui commence à la ligne 2 dans un fichier nommé par la date.
S'il y a deux fichiers à insérer dans une ligne de commande ou dans des paramètres, appelez le script sur des groupes de fichiers plus petits de manière séquentielle (avec
xargs
ou manuellement).La conversion du format de date devrait être facile :-)
la source