Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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