Quando eu grep a página de manual do comando find
para corresponde a type
, ele retorna muitos resultados de pesquisa que eu não quero. Em vez disso, quero usar um comando que retorna apenas os resultados da pesquisa para -type
.
O comando man find | grep -type
não funciona. Ele retorna:
grep: invalid option -- "t"
Comentários
Resposta
Se você quiser usar grep para um padrão que comece com um hífen, use --
antes do padrão que você especificar.
man find | grep -- -type
Se quiser mais informações, por exemplo, toda a seção que descreve uma opção , você poderia tentar 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.
No entanto, isso não funcionará para todas as opções que você possa pesquisar. Por exemplo :
$ man find | sed -n "/^[[:space:]]*-type/,/^$/p" -type c File is of type c:
Não é muito útil. Pior, para algumas opções, você pode ser induzido a pensar que “leria todo o texto sobre a opção na verdade” t. Por exemplo, pesquisar -delete
omite o AVISO muito importante contido como um segundo parágrafo sob esse título.
Meu recomendação é usar uma chamada padrão para man
com a LESS
variável de ambiente definida. Eu o uso com bastante frequência em minhas respostas neste site.
LESS="+/^[[:space:]]*-type" man find
Para saber mais sobre como isso funciona, consulte:
LESS="+/^[[:space:]]*LESS " man less LESS="+/\+cmd" man less LESS="+/\/" man less
Se você deseja apenas encontrar a opção de forma rápida e interativa na página de manual, aprenda a usar os recursos de pesquisa do less
“. E veja também:
Comentários
- Obrigado por postar. Os comandos em sua resposta retornaram os resultados que eu estava procurando. Aceitarei uma resposta depois de um ou dois dias, então por favor, seja paciente.
- @karel, sem problemas, eu ' sou muito paciente. 🙂 No entanto, um pouco intrigado: sei que você pode ' t começar uma recompensa por uma pergunta por dois dias, mas acredito que o limite de tempo antes de você aceitar uma resposta é de apenas 15 minutos ou mais.
-
man find | sed -n '/-type/,/^$/p'
dá muito mais do que o que você postou corresponderá a-type
em qualquer lugar da linha … estou trabalhando em um pequeno script para pesquisar man ou help (for builtin) e atualmente usandoawk
que ainda tem algumas peculiaridades para resolver.awk -v RS= -v rx="^\\\s*$arg\\\>" '$0 ~ rx' "$file"
ondearg
seria-type
em neste caso - BTW, @Sundeep, você pode tentar analisar os arquivos
troff
subjacentes contendo as informações da página de manual original com informações de formato, em vez da saída de texto do comandoman
. - @Sundeep, aqui ' é o ponto de partida para você . (Certifique-se de seguir o link dessa resposta.) Há ' m MUITO para saber sobre
troff
. Me dê um ping no chat quando terminar de mergulhar na toca do coelho 🙂
Resposta
Ou direcione para less
e feed que um termo de pesquisa:
man 1 find | less -p " -type"
(Isso pode falhar dependendo exatamente do que less
é feed, por exemplo, se -type
foi colocado em negrito com backspaces.)
Comentários
- Pipe-o em
col -bx
primeiro.
-type
ou deseja, digamos, o parágrafo inteiro ou dois que descrevem o que-type
faz?-type
seria o suficiente para a forma como normalmente procuro nas páginas de manual, porém retornando o parágrafo inteiro ou dois que descrevem o que-type
faz seria muito útil para fazer pelo menos uma vez.-type
opção sim.