Concaténation de fichiers gz en ligne de commande
Résolu/Fermé
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
-
Modifié le 5 févr. 2018 à 16:38
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 22 févr. 2018 à 17:11
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 22 févr. 2018 à 17:11
A voir également:
- Concaténation de fichiers gz en ligne de commande
- Invite de commande - Guide
- Partage de photos en ligne - Guide
- Site de vente en ligne particulier - Guide
- Commande terminal mac - Guide
- Aller à la ligne excel - Guide
7 réponses
Exileur
Messages postés
1475
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
16 décembre 2022
150
6 févr. 2018 à 06:47
6 févr. 2018 à 06:47
Hello,
on appel ca merger :)
Tu dois pouvoir faire un script en bash qui fait ca.
a plus dans lbus
on appel ca merger :)
Tu dois pouvoir faire un script en bash qui fait ca.
a plus dans lbus
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
6 févr. 2018 à 07:47
6 févr. 2018 à 07:47
Oui merci cela je me doute que l'on peut faire cela dans un script mais cela ne me donne pas plus d'info!
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
6 févr. 2018 à 08:31
6 févr. 2018 à 08:31
hello
ce sont des fichiers texte ?
ce sont des fichiers texte ?
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
Modifié le 6 févr. 2018 à 08:54
Modifié le 6 févr. 2018 à 08:54
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
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
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
6 févr. 2018 à 11:38
6 févr. 2018 à 11:38
comment doit s'appeller le fichier de destination ?
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
6 févr. 2018 à 12:27
6 févr. 2018 à 12:27
en appellant la destination access_new.log.*.gz
les fichiers originaux ne sont pas modifiés
shopt -s extglob
for f in access.log.+([0-9]).gz; do gzip -cd $f ${f/.gz/.srv.gz} | gzip -c > ${f/./_new.}; done
les fichiers originaux ne sont pas modifiés
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
6 févr. 2018 à 12:35
6 févr. 2018 à 12:35
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..
acces.log.1.merged.gz
acces.log.2.merged.gz
etc..
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
6 févr. 2018 à 12:55
6 févr. 2018 à 12:55
shopt -s extglob
for f in access.log.+([0-9]).gz; do gzip -cd $f ${f/.gz/.srv.gz} | gzip -c > ${f/.gz/.merged.gz}; done
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
6 févr. 2018 à 14:16
6 févr. 2018 à 14:16
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.
J'ai parcouru et compris ta commande qui sincèrement est trop complexe pour moi. De plus je ne connaissais pas la commande shopt.
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
6 févr. 2018 à 15:23
6 févr. 2018 à 15:23
shopt -s extglob pour que bash traite +([0-9]) (1 ou plusieurs chiffres) dans les noms de fichier, cf : Pathname Expansion
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
7 févr. 2018 à 07:47
7 févr. 2018 à 07:47
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
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
22 févr. 2018 à 17:11
22 févr. 2018 à 17:11
Cool merci
6 févr. 2018 à 09:17
:)
--
6 févr. 2018 à 09:44
6 févr. 2018 à 11:54
ou 10 = l'id maximum de ton fichier
--