Consulte can-i-get-man-individual-pages-for-the-bash-builtin-commands :
bashman () { man bash | less -p "^ $1 "; }
Esta função irá pular diretamente para a seção de parâmetro manual bash desejada.
Eu quero fazer com que aceite qualquer nome de manual e parâmetro manual na hora, então eu mudo esta função para:
function superman () {
man "$1" | less -p "^[ ]+[-]*$2[ ]"
}
Funciona perfeitamente com:
$ superman bash type
E vá para a seção da página man desejada:

Masnãofuncionanaseçãoqueterminacomnovalinha.Precisoalterá-lopara:
functionsuperman(){man"$1" | less -p "^[ ]+[-]*$2$"
}
Em seguida, execute $ superman gcc Wall para saltar para o parâmetro Wall :

Comocombinar[]e$como[]OR$?ouseja,terminacom"pelo menos um espaço" OU "nova linha" .
Eu tentei $ man gcc | less -p "^[ ]+[-]*Wall[ |$]" , mas não funciona.
Por favor, note que eu aceito por este salto indesejado, que é endswith [ ] mas não é realmente um começo de seção, porque eu acredito que é insolúvel se regex é [ ] OR $ :

[Obrigadopelasrespostas]
Euquerocompartilharmeuformuláriofinalaqui:
functionsuperman(){if[["$1" == "-I" || "$1" == "-i" ]]; then
man "$2" | less -I -p "^[ ]+-*$3( |=|,|$|\[)"
else
man "$1" | less -p "^[ ]+-*$2( |=|,|$|\[)"
fi
}
Isso funcionará se eu executar superman -i gcc wl , o que significa que não diferenciar maiúsculas de minúsculas para pular para a seção -Wl,option . -Wl,option de gcc requer , . scaletempo de mplayer exigem [ e scale de mplayer exigem =
Eu também escrevi para info version:
function superinfo () {
if [[ "$1" == "-I" || "$1" == "-i" ]]; then
info "$2" | less -I -p "^ *‘*'*-*\** *$3’*( |=|,|$|\[|:|')"
else
info "$1" | less -p "^ *‘*'*-*\** *$2’*( |=|,|$|\[|:|')"
fi
}
Testado com superinfo gcc _HPPA , superinfo -i gcc werror , superinfo -i gcc wl , superinfo -i mplayer scaletempo , superinfo -i mplayer stats , superinfo -i ls -f e superinfo -i bash -a (com sinal de menos, faça grande diferença aqui). MARCA ÚNICA DE COTAÇÃO ESQUERDA DO Unicode ’ usada por -f de ls .