Je voudrais rechercher des pages de manuel qui contiennent TOUS les mots «foo», «bar» et «baz».
Si possible, je voudrais rechercher dans tout le texte (pas seulement le nom et la description) de toutes les pages de manuel.
Je devine quelque chose comme
man -K foo AND bar AND baz
Réponses:
J'ai implémenté un script qui fait exactement cela.
Je suppose que c'était une perte de temps :(
Edit: Semble comme
n'a pas fonctionné?
Edit: Vous pouvez passer les scripts maintenant vos termes de recherche via
./script foo bar
la source
or
, je pensais que c'étaitand
parce que je ne l'avais pas testé correctement.Quelques réflexions sur l'écriture de ce script:
Utilisation
manpath
pour obtenir le (s) emplacement (s) des pages de manuel. Si j'ajoute/home/graeme/.cabal/bin
à monPATH
,manpath
(etman
) trouvera des pages de manuel dans/home/graeme/.cabal/share/man
.Utilisez man lui-même pour décompresser et formater les pages avant de rechercher, de cette façon vous recherchez simplement le texte man lui-même et non les commentaires, etc. dans le fichier brut. L'utilisation
man
concernera potentiellement plusieurs formats.L'enregistrement des pages formatées dans un fichier temporaire évitera les décompressions multiples et devrait accélérer considérablement les choses.
Voici (avec
bash
et GNU find):la source
Pas aussi complet que la réponse de @ polym, mais j'allais suggérer quelque chose comme
Notez que j'ai ajouté un
-w
commutateur (correspondance de mots) augreps
- ce qui n'est peut-être pas ce que vous voulez (voulez-vous inclure des correspondances comme foo lish et nut bar ?)la source
Cette approche n'est pas testée mais assez simple (stupide simple) et je m'attends à ce qu'elle fonctionne, même si elle est inefficace:
la source