Je voulais une commande bash utilisant le regex pour lister toutes les informations entre un '<' et un '>' afin de lister les zones a completer dans un fichier LICENSE (type: GNU GPL v3).
Cette commande
bashutilise grep avec une expression régulière (regex) pour lister toutes les informations entre un<et un>dans un fichier texte.
grep -o '<[^>]*>' LICENSEgrepest une commande utilisée pour rechercher des motifs (patterns) dans un fichier.- L'option
-odegreppermet de ne retourner que les parties correspondantes du texte, plutôt que la ligne entière. - L'expression régulière
<[^>]*>est utilisée pour rechercher tous les textes qui commencent par '<', suivis de n'importe quel nombre de caractères qui ne sont pas '>', puis se terminent par '>'.
Cette commande listera toutes les occurrences de ce motif dans le fichier et les affichera à l'écran. Si vous souhaitez rediriger les résultats vers un autre fichier ou effectuer d'autres actions, vous pouvez le faire en utilisant des opérateurs de redirection ou en ajoutant des commandes supplémentaires à la suite de cette commande.
Cette commande
bashutilise grep avec une expression régulière (regex) pour lister toutes les informations entre un<et un>dans un fichier texte. Mais... Cette fois, qui ne contiennent pas d'URL.
Pour lister toutes les informations entre un '<' et un '>' dans un fichier texte et exclure celles qui contiennent des URLs, je vais utiliser grep avec une expression régulière qui exclut les URLs courantes. Voici une commande Bash pour cela :
grep -o '<[^>]*>' LICENSE | grep -Ev '(http|https|www\.)'- La première partie de la commande
grep -o '<[^>]*>' LICENSEest la même que dans la réponse précédente, elle extrait toutes les occurrences entre '<' et '>'. - La deuxième partie de la commande
grep -Ev '(http|https|www\.)'utilise un autregrepavec l'option-Epour activer les expressions régulières étendues et-vpour inverser la recherche, c'est-à-dire qu'elle exclura les lignes contenant les motifs spécifiés. - L'expression régulière
(http|https|www\.)recherche les occurrences dehttp,httpsouwww.dans le texte. Si une ligne contient l'un de ces motifs, elle sera exclue des résultats.
Voilà donc cette commande bash liste enfin toutes les informations entre '<' et '>', tout en excluant les lignes qui contiennent des URLs.