![menos patrón - termina con [ ] o $](https://rvso.com/image/97017/menos%20patr%C3%B3n%20-%20termina%20con%20%5B%20%5D%20o%20%24.png)
Referirse a¿Puedo-obtener-páginas-man-individuales-para-los-comandos-integrados-de-bash?:
bashman () { man bash | less -p "^ $1 "; }
Esta función saltará directamente a la sección de parámetros manuales de bash deseada.
Quiero que acepte cualquier nombre de manual y parámetro manual sobre la marcha, así que cambio esta función a:
function superman () {
man "$1" | less -p "^[ ]+[-]*$2[ ]"
}
Funciona perfectamente con:
$ tipo de bash de superman
Y salte a la sección de la página de manual deseada:
Pero no funciona en la sección que termina con una nueva línea. Necesito cambiarlo a:
function superman () {
man "$1" | less -p "^[ ]+[-]*$2$"
}
Luego ejecutar $ superman gcc Wall
podrá saltar al Wall
parámetro:
¿Cómo combinar [ ]
y $
ser [ ] OR $
? es decirtermina con "al menos un espacio" O "nueva línea".
Lo intenté $ man gcc | less -p "^[ ]+[-]*Wall[ |$]"
pero no funciona.
Tenga en cuenta que acepto este salto no deseado, que termina con [ ]
pero no es realmente el comienzo de la sección, porque creo que no tiene solución si la expresión regular es [ ]
OR $
:
[Gracias por las respuestas]
Quiero compartir mi formulario final aquí:
function superman () {
if [[ "$1" == "-I" || "$1" == "-i" ]]; then
man "$2" | less -I -p "^[ ]+-*$3( |=|,|$|\[)"
else
man "$1" | less -p "^[ ]+-*$2( |=|,|$|\[)"
fi
}
Esto funcionará si lo ejecuto, superman -i gcc wl
lo que significa que no distingue entre mayúsculas y minúsculas para saltar a -Wl,option
la sección. -Wl,option
de gcc
requerir ,
. scaletempo
de mplayer
requerir [
y scale
de mplayer
requerir=
También escribí para info
la versión:
function superinfo () {
if [[ "$1" == "-I" || "$1" == "-i" ]]; then
info "$2" | less -I -p "^ *‘*'*-*\** *$3’*( |=|,|$|\[|:|')"
else
info "$1" | less -p "^ *‘*'*-*\** *$2’*( |=|,|$|\[|:|')"
fi
}
Probado con superinfo gcc _HPPA
, superinfo -i gcc werror
, superinfo -i gcc wl
, superinfo -i mplayer scaletempo
, superinfo -i mplayer stats
, superinfo -i ls -f
y superinfo -i bash -a
(con el signo menos hace una gran diferencia aquí). COMILLA SIMPLE IZQUIERDA de Unicode ’
utilizada por -f
de ls
.
Respuesta1
Creo que está equivocado acerca del significado de [
los corchetes ]
en una expresión regular. Tenga en cuenta su patrón:
^[ ]+[-]*Wall[ |$]
[ ]
es exactamente igual que (un solo espacio) y
[-]
es exactamente igual que -
. Y en la parte final del patrón, [foo|bar]
no significa "lo uno foo
o lo otro bar
".
Lo que estás buscando es ( |$)
. Esa es la sintaxis para hacer coincidir una cosa U otra cosa. (También necesitarás citar esa parte del patrón con comillas simples o una barra invertida en lugar de comillas dobles, debido al signo del dólar).
[thing]
denota una clase de carácter: coincide con t
, h
, i
, n
o g
.
Respuesta2
¿Cómo combinar
[ ]
y$
?
([ ]|$)
o( |$)