3 votes

Récupérer les lignes "TODO" d'un fichier texte

Je suis en train de modifier un projet dans GEdit (éditeur de texte). Quand je tape TODO, il le surligne en jaune pour référence future. J'ai pas mal de ces TODO ici et là.

Pour rendre plus clair ce que j'ai besoin de faire, est-ce que quelqu'un pourrait me montrer une façon d'extraire toutes les lignes TODO d'un tas de fichiers et de les mettre dans un fichier texte appelé, par exemple, TODOs.txt ?

Je possède quelque chose comme ça :

// TODO: Gestion des erreurs.

Et je voudrais que cela soit mis dans un fichier comme celui-ci :

* Gestion des erreurs

Une application Linux (CLI, GUI peu importe) serait préférable, mais un script regex ou une autre méthode qu'une personne pourrait imaginer serait bien.

0voto

EdoDodo Points 5480

Voici une commande qui trouvera tous les TODO dans le répertoire dans lequel vous vous trouvez et ses sous-répertoires, et les mettra dans un fichier texte :

grep 'TODO' -rn * > TODOs.txt

ÉDITER :

Pour supprimer la sortie inutile avant cela, vous pourriez utiliser cette commande à la place :

grep 'TODO.*' -rno * > TODOs.txt

0voto

Scurrae Points 1

Avait le même problème alors j'ai écrit un script python simple pour le faire en utilisant git grep...

import os
import subprocess
from contextlib import suppress

result = subprocess.run("git grep -l TODO", stdout=subprocess.PIPE)
lst = result.stdout.decode().split("\n")

with suppress(Exception): lst.remove(os.path.basename(__file__)) # supprimer ce nom de fichier
with suppress(Exception): lst.remove("") # supprimer le nom de fichier vide

todos = []
for file in lst:
    with open(file) as reader:
        for idx, row in enumerate(reader):
            if "TODO" in row: todos.append((file, idx, row))

for todo in todos:
    print(todo)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X