Quand je grep la page de manuel de la commande find pour correspond à type il renvoie un grand nombre de résultats de recherche que je ne veux pas. Je souhaite plutôt utiliser une commande qui renvoie uniquement les résultats de recherche pour -type.

La commande man find | grep -type ne fonctionne pas. Il renvoie:

grep: invalid option -- "t" 

Commentaires

  • Voulez-vous uniquement les lignes individuelles de la page de manuel formatée contenant la chaîne -type, ou voulez-vous, par exemple, le paragraphe entier ou deux décrivant ce que fait -type?
  • Je veux savoir comment le faire dans les deux sens, rechercher les lignes individuelles contenant la chaîne -type suffirait à la manière dont je recherche habituellement les pages de manuel, mais en retournant le ou les paragraphes en entier qui décrivent ce que fait -type seraient très utiles à faire au moins une fois.
  • BTW, si laffichage dune page Web est une alternative, Idan Kamara de expliquehell.com a fait un excellent travail en extrayant les parties des pages de manuel qui décrivent les options de commande. Voir, par exemple, expliquehell.com/explain?cmd=find+-type+f pour voir exactement ce que le -type option fait.

Réponse

Si vous voulez grep pour un modèle commençant par un trait dunion, utilisez -- avant le motif que vous spécifiez.

man find | grep -- -type 

Si vous voulez plus dinformations, par exemple toute la section décrivant une option , vous pouvez essayer dutiliser Sed:

$ man find | sed -n "/-mindepth/,/^$/p" -mindepth levels Do not apply any tests or actions at levels less than levels (a non-negative integer). -mindepth 1 means process all files except the command line arguments. 

Cependant, cela ne fonctionnera pas pour toutes les options que vous pourriez rechercher. Par exemple :

$ man find | sed -n "/^[[:space:]]*-type/,/^$/p" -type c File is of type c: 

Pas très utile. Pire encore, pour certaines options, vous pourriez être induit en erreur en pensant que vous « auriez lu tout le texte sur loption alors que vous ne laviez vraiment pas » t. Par exemple, la recherche de -delete omet le très important AVERTISSEMENT contenu dans un deuxième paragraphe sous ce titre.


Mon la recommandation est dutiliser un appel standard à man avec la variable denvironnement LESS définie. Je lutilise assez souvent dans mes réponses sur ce site.

LESS="+/^[[:space:]]*-type" man find 

Pour en savoir plus sur son fonctionnement, consultez:

LESS="+/^[[:space:]]*LESS " man less LESS="+/\+cmd" man less LESS="+/\/" man less 

Si vous souhaitez simplement trouver loption rapidement et de manière interactive dans la page de manuel, apprenez à utiliser les capacités de recherche de less« . Et voir aussi:

Commentaires

  • Merci davoir posté. Les commandes de votre réponse ont renvoyé les résultats que je recherchais. Jaccepterai une réponse après un jour ou deux, alors sil vous plaît soyez patient.
  • @karel, pas de problème, je ' suis très patient. 🙂 Un peu perplexe, cependant: je sais que vous pouvez ' t commencer une prime sur une question pendant deux jours, mais je crois que le délai avant daccepter une réponse nest que de 15 minutes environ.
  • man find | sed -n '/-type/,/^$/p' donne beaucoup plus que ce que vous avez publié correspondra à -type nimporte où dans la ligne … je travaille moi-même sur un petit script pour rechercher un homme ou de laide (pour intégré) et jutilise actuellement awk qui a encore quelques bizarreries à résoudre .. awk -v RS= -v rx="^\\\s*$arg\\\>" '$0 ~ rx' "$file"arg serait -type dans dans ce cas
  • BTW, @Sundeep, vous voudrez peut-être essayer danalyser les fichiers troff sous-jacents contenant les informations de la page de manuel dorigine avec les informations de format, au lieu de la sortie texte de la commande man.
  • @Sundeep, ici ' est le point de départ pour vous . (Assurez-vous de suivre le lien dans cette réponse.) Il y a ' BEAUCOUP à savoir sur troff. Envoyez-moi un ping dans le chat lorsque vous avez fini de plonger dans le terrier du lapin. 🙂

Réponse

Ou dirigez-vous vers less et le flux quun terme de recherche:

man 1 find | less -p " -type" 

(Cela peut échouer en fonction exactement de ce que less est le flux, par exemple si -type a été mis en gras avec les espaces arrière.)

Commentaires

  • Faites-le passer par col -bx dabord.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *