menos patrón - termina con [ ] o $

menos patrón - termina con [ ] o $

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:

ingrese la descripción de la imagen aquí

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 Wallpodrá saltar al Wallparámetro:

ingrese la descripción de la imagen aquí

¿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 $:

ingrese la descripción de la imagen aquí

[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 wllo que significa que no distingue entre mayúsculas y minúsculas para saltar a -Wl,optionla sección. -Wl,optionde gccrequerir ,. scaletempode mplayerrequerir [y scalede mplayerrequerir=

También escribí para infola 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 -fy superinfo -i bash -a(con el signo menos hace una gran diferencia aquí). COMILLA SIMPLE IZQUIERDA de Unicode utilizada por -fde 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 fooo 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, no g.

Respuesta2

¿Cómo combinar [ ]y $?

([ ]|$)o( |$)

información relacionada