Concaténation de fichiers gz en ligne de commande
Résolu
pcsystemd
Messages postés
734
Statut
Membre
-
pcsystemd Messages postés 734 Statut Membre -
pcsystemd Messages postés 734 Statut Membre -
Bonjour,
J'ai des fichiers nommés :
et des fichiers nommés :
et je souhaiterais concaténer ses fichiers par leur numéro c'est a dire :
Comment faire et avec quelle(s) commandes(s).
Merci beaucoup
L'accès au savoir est la première liberté que chaque homme devrait avoir.
J'ai des fichiers nommés :
fichier1.gz
fichier2.gz
fichier3.gz
fichier4.gz
etc..
et des fichiers nommés :
fichier1_src.gz
fichier2_src.gz
fichier3_src.gz
fichier4_src.gz
etc..
et je souhaiterais concaténer ses fichiers par leur numéro c'est a dire :
fichier1.gz avec fichier1_src.gz
fichier2.gz avec fichier2_src.gz
fichier3.gz avec fichier3_src.gz
fichier4.gz avec fichier4_src.gz
etc..
Comment faire et avec quelle(s) commandes(s).
Merci beaucoup
L'accès au savoir est la première liberté que chaque homme devrait avoir.
7 réponses
-
Hello,
on appel ca merger :)
Tu dois pouvoir faire un script en bash qui fait ca.
a plus dans lbus
-
Oui merci cela je me doute que l'on peut faire cela dans un script mais cela ne me donne pas plus d'info!
-
hello
ce sont des fichiers texte ?-
Hello,
Ce sont des logs apache zippés en logs.gz
en fait j'ai deux serveurs apaches et je dois concaténer les logs du serveur 1 et du serveur 2.
Les logs du serveur 1 sont nommés :
access.log.1.gz
access.log.2.gz
etc..
et les fichiers du serveur 2 :
access.log.1.srv.gz
access.log.2.srv.gz
etc..
Merci -
-
-
-
Pour chaque concaténation de deux fichiers, il doit s'appeller : acces.log.1.merged.gz par exemple donc :
acces.log.1.merged.gz
acces.log.2.merged.gz
etc.. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci dubcek comme d'hab tu m'as sauvé!
J'ai parcouru et compris ta commande qui sincèrement est trop complexe pour moi. De plus je ne connaissais pas la commande shopt.
-
il n'y a pas besoin de décompresser pour concaténer, ceci suffit
shopt -s extglob
for f in access.log.+([0-9]).gz; do cat $f ${f/.gz/.srv.gz} > ${f/.gz/.merged.gz}; done -