11 points par GN⁺ 2023-12-31 | 2 commentaires | Partager sur WhatsApp
  • Outil de recherche de motifs dans les fichiers, puissant, très rapide, convivial et compatible avec grep
  • Accélère la recherche dans le système de fichiers grâce à un nouvel indexeur de fichiers, avec possibilité de rechercher via une TUI (interface utilisateur en mode texte) ou en ligne de commande à l’aide d’options compatibles avec grep
  • Prend en charge une syntaxe de requête de motifs similaire à la recherche Google
  • Prend en charge la recherche floue (élargit la reconnaissance pour détecter des mots comportant une ou deux lettres erronées dans le motif, ou produit des résultats de recherche optimisés)
  • Peut être installé sur de nombreux systèmes, notamment macOS, Windows, Alpine, Android Termux, Arch, CentOS, Debian, Fedora, FreeBSD, NetBSD, OpenSUSE et RHEL
  • Permet de rechercher et d’afficher un hexdump dans de nombreux formats de fichiers, dont les archives zip/tar/pax/cpio imbriquées, les fichiers compressés, les fichiers binaires, les PDF, doc, docx, etc.

Commandes

  • Les commandes ug et ugrep permettent de rechercher des motifs dans des fichiers, et ug utilise le fichier de configuration .ugrep situé dans le répertoire de travail ou le répertoire personnel.
  • ug --save-config OPTIONS enregistre un nouveau fichier .ugrep dans le répertoire de travail à partir de la configuration .ugrep actuelle.
  • ugrep n’utilise pas le fichier de configuration .ugrep et fonctionne au mieux dans des scripts shell.
  • Divers exemples montrent comment utiliser l’outil pour faire du pattern matching dans des fichiers et des répertoires, enregistrer des fichiers de configuration ou effectuer des recherches de type Google.

Options

  • ugrep est compatible avec GNU grep et prend en charge les options en ligne de commande de GNU grep.
  • Il propose de nombreuses options pour gérer la liste des fichiers, l’affichage des correspondances, les informations sur les correspondances, le contexte des correspondances, etc.
  • Inclut des fonctionnalités comme les modes de pattern matching, la TUI interactive, la recherche de fichiers et la recherche floue.

Archives et fichiers compressés

  • L’option -z permet de rechercher dans les archives, les tarballs et les fichiers compressés.
  • Différentes options permettent la recherche à l’intérieur des archives selon un niveau donné, l’ignorance des fichiers binaires, ainsi que la recherche selon le type de fichier et des motifs glob.

Fichiers binaires et périphériques

  • Comprend des options pour ignorer les fichiers binaires ou en afficher un hexdump, ainsi que des options pour rechercher dans des périphériques spéciaux.

Exclusions et inclusions

  • Fournit des options pour contrôler l’ignorance des fichiers binaires, le suivi des liens symboliques, l’inclusion des fichiers cachés, ainsi que la recherche selon certains types de fichiers et motifs glob.

Sortie formatée

  • Prend en charge divers formats de sortie, dont CSV, JSON, XML et des formats personnalisés.

Jolis raffinements, plus ou moins

  • Inclut des options pour rendre la sortie plus agréable à lire, comme les couleurs, les hyperliens, le pager, les tags et le remplacement des correspondances.

Obtenir de l’aide

  • L’option --help permet d’obtenir l’aide nécessaire, avec des explications détaillées sur différentes options ainsi que sur les motifs, glob et filtres.

L’avis de GN⁺

  • ugrep offre des fonctionnalités bien plus puissantes que les outils grep existants et améliore l’expérience de recherche grâce à la prise en charge de nombreux formats de fichiers et options de pattern matching.
  • Sa TUI conviviale et son fichier de configuration permettent de construire un environnement de recherche personnalisé.
  • Cet outil est très utile pour les développeurs logiciels et les administrateurs système qui doivent explorer et analyser efficacement de vastes bases de code ou systèmes de fichiers.

2 commentaires

 
molla 2024-01-02

J’utilise déjà beaucoup ripgrep, donc en cherchant quelles étaient les différences, je suis tombé sur ce billet.
https://reddit.com/r/rust/…
Même si cela date d’il y a quelques années, ugrep affirme y être plus rapide que ripgrep, tandis que ripgrep affirme être plus rapide que ugrep — alors, qui a raison ? Les commentaires sont vraiment impressionnants.
L’auteur a refait les tests réalisés par ugrep et en a résumé les résultats.
En gros, la conclusion est que, dans la plupart des cas, ripgrep semble bien être plus rapide, et que ugrep a l’air d’avoir mené les tests d’une manière qui lui était favorable. (Autrement dit, même en reprenant les scénarios de test utilisés par ugrep, ripgrep obtient souvent de meilleurs résultats ; et il y a aussi le soupçon que ugrep a réduit la taille des tests pour augmenter les écarts dus au bruit et ne retenir que les résultats qui l’avantageaient.)

 
GN⁺ 2023-12-31
Avis sur Hacker News
  • Il existe un fil sur les performances et la comparaison avec ripgrep(ripgrep). Plusieurs interfaces utilisateur textuelles (TUI) basées sur ripgrep y sont également présentées.

  • Expression d’un souhait pour un outil intégré au shell, offrant un aperçu en temps réel des pipelines shell. Une fonctionnalité similaire a été mise en place dans zsh avec le widget zle accept-and-hold, mais voir les résultats en temps réel serait préférable.

  • Intérêt exprimé pour la prise en charge d’un indexeur n-gram. ripgrep prévoyait aussi cette fonctionnalité, mais ne l’a pas encore implémentée. csearch a été utilisé pour de grandes bases de code, mais avec plusieurs limitations. Le nouvel indexeur met 86 secondes à indexer l’arborescence du noyau Linux, ce qui est bien plus lent que l’outil cindex de csearch.

  • Remarque importante sur la compatibilité : ce n’est en réalité pas compatible, et il a été possible de trouver en quelques secondes des options dont le comportement diffère complètement de la version GNU.

  • Il faut aussi jeter un œil à grab, créé par Sebastian Krahmer.

  • Questionnement sur la raison pour laquelle les nouveaux outils ne suivent pas le standard XDG. Le respecter permettrait d’éviter que le répertoire personnel soit encombré d’innombrables fichiers de configuration.

  • Avis positif sur Ugrep, disponible dans les dépôts basés sur Debian. En particulier, la fonction de correspondance floue, qui tolère les fautes de frappe ou des écarts de 1 à 2 lettres, est jugée utile.

  • Satisfaction exprimée concernant la fonction de recherche de plusieurs termes dans des fichiers, surnommée « google de fichiers ». Un script maison avait été écrit auparavant, mais cette fonctionnalité le rend inutile. La TUI sera aussi examinée. ripgrep était utilisé jusqu’ici, mais une comparaison sera faite pour voir si cet outil peut le remplacer.