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
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 actuellementawk
qui a encore quelques bizarreries à résoudre ..awk -v RS= -v rx="^\\\s*$arg\\\>" '$0 ~ rx' "$file"
où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 commandeman
. - @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.
-type
, ou voulez-vous, par exemple, le paragraphe entier ou deux décrivant ce que fait-type
?-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.-type
option fait.