Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
pratique:informatique:recherche [16/03/2016 12:00] – Zatalyz | pratique:informatique:recherche [11/08/2023 08:53] (Version actuelle) – [Avec grep] Zatalyz | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Trouver et remplacer des informations ====== | ====== Trouver et remplacer des informations ====== | ||
+ | ===== Avec grep ===== | ||
Chercher une info dans un tas de log dans un dossier et sortir les résultats dans un fichier à part : | Chercher une info dans un tas de log dans un dossier et sortir les résultats dans un fichier à part : | ||
Ligne 6: | Ligne 7: | ||
Mais pour du récursif j'ai pas encore trouvé bien probant. Celle-ci marche mais va chercher dans tous les types de fichiers. | Mais pour du récursif j'ai pas encore trouvé bien probant. Celle-ci marche mais va chercher dans tous les types de fichiers. | ||
grep -nri " | grep -nri " | ||
+ | |||
+ | Si les dossiers sont de même profondeur (cas des logs), ceci peut marcher : | ||
+ | grep -nri " | ||
+ | |||
+ | Autres options sympas de grep : | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Pour afficher seulement les fichiers où apparait ce qu'on cherche, c'est '' | ||
+ | grep -lri " | ||
+ | ===== Avec find ===== | ||
+ | |||
+ | Pour chercher une chaîne de caractères uniquement dans les fichiers d'une certaine extension (pour l' | ||
+ | find . -type f -iname ' | ||
Ligne 17: | Ligne 34: | ||
Puis dans les noms de fichiers : | Puis dans les noms de fichiers : | ||
find . -type f|while read f; do mv $f `echo $f |tr ' | find . -type f|while read f; do mv $f `echo $f |tr ' | ||
+ | |||
+ | |||
+ | ===== Fichiers trop longs ===== | ||
+ | Dans le cas des fichiers de log trop longs, que grep et les éditeurs de texte n' | ||
+ | |||
+ | On créé un dossier où mettre les morceaux, puis on coupe toutes les 1000 lignes : | ||
+ | |||
+ | mkdir canal.log.d | ||
+ | split -l 10000 \#canal.log canal.log.d/ | ||
+ | |||
+ | |||
+ |