less モード - [ ] または $ で終わる

less モード - [ ] または $ で終わる

引用するBash 組み込みコマンドの個別のマニュアルページを取得できますか?:

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

この関数は、必要な bash 手動引数セクションに直接移動します。

手動名と手動パラメータを動的に許可したいので、この関数を次のように変更しました。

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

次のような場合に完璧に動作します。

$スーパーマンバッシュタイプ

必要なマニュアルページセクションに移動します。

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

しかし、改行文字で終わる部分には機能しません。次のように変更する必要があります。

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

その後、実行してパラメータ$ superman gcc Wallに移動します。Wall

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

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

私はそれを試しましたが、$ man gcc | less -p "^[ ]+[-]*Wall[ |$]"動作しません。

正規表現が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,optionから。ニーズからとニーズからgcc,scaletempomplayer[scalemplayer=

私は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を使用してテストしますsuperinfo -i gcc wl(ここsuperinfo -i mplayer scaletempoでマイナス記号を使用すると大きな違いがあります)。 ofはUnicode左一重引用符を使用します。superinfo -i mplayer statssuperinfo -i ls -fsuperinfo -i bash -a-fls

答え1

[正規表現で角括弧の意味を間違って理解しているようです。]パターンに注意してください。

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

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

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

[thing]文字クラスを表します。t、、、hまたiはと一致します。ng

答え2

[ ]そしてどのように結合しますか$

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

関連情報