#1 Le 27/04/2023, à 15:20
- Jarodd
[Résolu] Script pour concaténer des logs d'un répertoire
Bonjour,
Pour le boulot j'essaye de me bidouiller un script.
Quand on a un souci applicatif, les admins nous balancent des scripts dans tous les sens, sur plusieurs environnements. Je me retrouve souvent avec 100+ fichiers à analyser.
Je fais donc un tri manuel, en fonction de leur utilité : je les classe par dossier. Mais j'ai toujours plusieurs fichiers par répertoire, je les concatène donc par "thème" avec la commande :
cat repertoireA/* > repertoireA.log
cat repertoireB/* > repertoireB.log
Puis j'analyse chaque fichier.
Je voudrais automatiser cette dernière étape (pour l'instant je gère encore le tri par répertoire manuellement). Voici mon script :
#!/bin/bash
dirs="$(ls -Ad */)" # analyze only directories, not files or "."
for dir in ${dirs}
do
dir=$(echo "$dir" | sed 's:/*$::') # remove last "/" character
echo "Traitement du répertoire "${dir}
cat "${dir}/* > ${dir}.log"
done
Seulement j'obtiens une erreur :
cat 'repertoireA/* > repertoireA.log' : Aucun fichier ou dossier de ce type
Je ne comprends pas cette erreur, ni ce que je dois corriger.
Quand je fais la commande manuellement (cat 'repertoireA/* > repertoireA.log) j'ai bien tout le contenu dans le fichier repertoireA.log.
Merci pour votre aide.
Edit 28/04 : résolu, syntaxe en #2
Dernière modification par Jarodd (Le 28/04/2023, à 14:08)
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne
#2 Le 27/04/2023, à 15:24
- sputnick
Re : [Résolu] Script pour concaténer des logs d'un répertoire
Ce que je ferais:
#!/bin/bash
for dir in */; do
echo "Traitement du répertoire ${dir%/}"
cat "$dir"* > "${dir%/}.log"
done
(non testé)
Dernière modification par sputnick (Le 27/04/2023, à 17:27)
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#3 Le 28/04/2023, à 14:04
- Jarodd
Re : [Résolu] Script pour concaténer des logs d'un répertoire
Bonjour,
J'obtiens :
cat: xxx est un dossier
Erreur de ma part, j'avais laissé la ligne qui retire le dernier "/". En l'enlevant, ça fonctionne, merci sputnick !
Dernière modification par Jarodd (Le 28/04/2023, à 14:09)
Ubuntu 22.04.3 LTS (64 bits)
Hors ligne