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
.