lessパターン - [ ] または $ で終わる

lessパターン - [ ] または $ で終わる

参照するbash 組み込みコマンドの個別のマニュアルページを入手できますか?:

bashman () { man bash | less -p "^       $1 "; }

この関数は、目的の bash マニュアル パラメータ セクションに直接ジャンプします。

任意の手動名と手動パラメータをその場で受け入れられるようにしたいので、この関数を次のように変更します。

function superman () {
    man "$1" | less -p "^[ ]+[-]*$2[ ]"
}

以下の製品と完璧に連携します:

$ スーパーマン bash タイプ

目的のマニュアルページのセクションにジャンプします。

ここに画像の説明を入力してください

しかし、改行で終わるセクションでは機能しません。次のように変更する必要があります。

function superman () {
    man "$1" | less -p "^[ ]+[-]*$2$"
}

次に実行すると、パラメータ$ superman gcc Wallにジャンプできるようになります。Wall

ここに画像の説明を入力してください

どのように組み合わせて[ ]$どのようになるか[ ] OR $?すなわち「少なくとも 1 つのスペース」または「改行」で終わる

試してみました$ man gcc | less -p "^[ ]+[-]*Wall[ |$]"が、うまくいきませんでした。

この望ましくないジャンプは endswith です[ ]が、実際にはセクションの開始ではありません。正規表現が[ ]ORの場合は解決できないと思われるため、これを受け入れることに注意してください。$

ここに画像の説明を入力してください

[ご回答ありがとうございました]

ここで私の最終形態を共有したいと思います:

function superman () {
    if [[ "$1" == "-I" || "$1" == "-i" ]]; then
        man "$2" | less -I -p "^[ ]+-*$3( |=|,|$|\[)"
    else
        man "$1" | less -p "^[ ]+-*$2( |=|,|$|\[)"
    fi
}

superman -i gcc wlこれは、セクションにジャンプするために大文字と小文字を区別しないことを意味する実行時に機能します-Wl,option-Wl,optionfrom gccrequire ,scaletempofrom mplayerrequire [、およびscalefrom mplayerrequire=

バージョンについてinfoも書きました:

function superinfo () {
    if [[ "$1" == "-I" || "$1" == "-i" ]]; then
        info "$2" | less -I -p "^ *‘*'*-*\** *$3’*( |=|,|$|\[|:|')"
    else
        info "$1" | less -p "^ *‘*'*-*\** *$2’*( |=|,|$|\[|:|')"
    fi
}

superinfo gcc _HPPA、、、、、、およびでテストされています(マイナス記号があるとsuperinfo -i gcc werror、ここで大きな違いが生じます)。ので使用されるUnicodeの左一重引用符。superinfo -i gcc wlsuperinfo -i mplayer scaletemposuperinfo -i mplayer statssuperinfo -i ls -fsuperinfo -i bash -a-fls

答え1

正規表現における[角括弧の意味について誤解されていると思います。パターンに注意してください:]

^[ ]+[-]*Wall[ |$]

[ ]は(スペース 1 つ)とまったく同じであり、[-]は とまったく同じです-。また、パターンの最後の部分では、は「または」[foo|bar]を意味しません。foobar

探しているのは です( |$)。これは、1 つの項目または別の項目を一致させるための構文です。(ドル記号があるため、パターンのその部分を二重引用符ではなく一重引用符またはバックスラッシュで囲む必要もあります)。

[thing]は文字クラスを表します。、、、、または のいずれかtに一致hiます。ng

答え2

[ ]と を組み合わせるにはどうすればいいですか$?

([ ]|$)または( |$)

関連情報