Cuando grep la página de manual del comando find
para coincide con type
devuelve muchos resultados de búsqueda que no quiero. En su lugar, quiero usar un comando que devuelva solo los resultados de búsqueda para -type
.
El comando man find | grep -type
no «funciona. Devuelve:
grep: invalid option -- "t"
Comentarios
Responder
Si desea grep para un patrón que comienza con un guión, use --
antes del patrón que especifique.
man find | grep -- -type
Si desea más información, por ejemplo, toda la sección que describe una opción , podría intentar usar 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.
Sin embargo, esto no funcionará para todas las opciones que pueda buscar. Por ejemplo :
$ man find | sed -n "/^[[:space:]]*-type/,/^$/p" -type c File is of type c:
No es muy útil. Peor aún, para algunas opciones podría ser engañado y pensar que «leería todo el texto sobre la opción cuando realmente no lo había hecho». t. Por ejemplo, al buscar -delete
se omite la ADVERTENCIA muy importante contenida como un segundo párrafo bajo ese encabezado.
Mi la recomendación es utilizar una llamada estándar a man
con el conjunto de variables de entorno LESS
. Lo uso con bastante frecuencia en mis respuestas en este sitio.
LESS="+/^[[:space:]]*-type" man find
Para obtener más información sobre cómo funciona, consulte:
LESS="+/^[[:space:]]*LESS " man less LESS="+/\+cmd" man less LESS="+/\/" man less
Si solo desea encontrar la opción de forma rápida e interactiva en la página de manual, aprenda a usar las capacidades de búsqueda de less
«. vea también:
Comentarios
- Gracias por publicar. Los comandos en su respuesta arrojaron los resultados que estaba buscando. Aceptaré una respuesta después de uno o dos días, así que tenga paciencia.
- @karel, no hay problema, yo ' soy muy paciente. 🙂 Sin embargo, un poco desconcertado: sé que puede ' No inicie una recompensa por una pregunta durante dos días, pero creo que el límite de tiempo antes de que pueda aceptar una respuesta es de solo 15 minutos aproximadamente.
-
man find | sed -n '/-type/,/^$/p'
da mucho más de lo que publicaste coincidirá con-type
en cualquier parte de la línea … estoy trabajando en un pequeño script para buscar man o help (para builtin) y actualmente estoy usandoawk
que todavía tiene algunas peculiaridades que resolver ..awk -v RS= -v rx="^\\\s*$arg\\\>" '$0 ~ rx' "$file"
dondearg
sería-type
en este caso - Por cierto, @Sundeep, es posible que desee intentar analizar los archivos
troff
subyacentes que contienen la información de la página de manual original con información de formato, en lugar de la salida de texto delman
comando. - @Sundeep, aquí ' es el punto de partida para ti . (Asegúrese de seguir el enlace en esa respuesta). Hay ' MUCHO que saber sobre
troff
. Hazme ping en el chat cuando termines de sumergirte en la madriguera del conejo. 🙂
Responder
O canalizar a less
y alimentar que un término de búsqueda:
man 1 find | less -p " -type"
(Esto puede fallar dependiendo exactamente de qué less
es feed, por ejemplo, si -type
se ha resaltado en negrita con retrocesos.)
Comentarios
- Transmitirlo a través de
col -bx
primero.
-type
, o quieres, digamos, el párrafo completo o dos que describen lo que-type
hace?-type
sería suficiente para la forma en que suelo buscar en las páginas de manual, sin embargo, devolver el párrafo completo o dos que describen lo que-type
hace sería muy útil para hacerlo al menos una vez.-type
lo hace.