引用する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
,
scaletempo
mplayer
[
scale
mplayer
=
私は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 stats
superinfo -i ls -f
superinfo -i bash -a
’
-f
ls
答え1
[
正規表現で角括弧の意味を間違って理解しているようです。]
パターンに注意してください。
^[ ]+[-]*Wall[ |$]
[ ]
(単一スペース)とまったく同じで、
[-]
まったく同じです-
。そして、パターンの最後の部分では「either or」[foo|bar]
を意味しません。foo
bar
あなたが探しているのは、( |$)
これまたは他のものを一致させるための構文です。 (ドル記号のため、二重引用符ではなく一重引用符またはバックスラッシュを使用してパターンの対応する部分を引用する必要があります。)
[thing]
文字クラスを表します。t
、、、h
またi
はと一致します。n
g
答え2
[ ]
そしてどのように結合しますか$
?
([ ]|$)
または( |$)