私は頻繁にman bashを参照して、「履歴拡張」パーツ(イベント/単語/修飾子)の使用を思い出します。私が必要とする人の部分は「歴史の拡大」であることを知っています。そこで、前方検索リスト「/」にHISTORY EXPANSION
と入力します。もちろん、「HISTORY EXPANSION」の部分に簡単にジャンプすることは少なくなりますが、代わりに、特定の男性でこの文字列が出現するすべての部分が表示されます。したがって、次のように入力するとよいと思いました。
/^HISTORY EXPANSION
だから、「ラインの始まり」の歴史的拡大にジャンプすることができました。
/^HISTORY EXPANSION
も/\^HISTORY EXPANSION
も機能しない
少ない男で私はそれを見る...
/pattern
パターンを含むN番目の行をファイルで前方検索します。 Nのデフォルトは1です。パターンは、システムが提供する正規表現ライブラリによって認識される正規表現です。
他の男性もこれを調べていたようですが、目的は異なります: https://stackoverflow.com/questions/14698364/what-is-the-regular-expression-library-supplied-by-my -system
手順に従いましたが、自分のマシンで使用されている正規表現のバージョンを確認できません。以下は、バイナリが少ない場合の共有lib依存関係の出力です
$ ldd /usr/bin/less
linux-vdso.so.1 => (0x00007ffc229cb000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f44968e9000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4496524000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4496b12000)
それで、私が必要な人の部分に簡単にジャンプできるように、より少ない検索で行の始まりを示す方法は?
試行錯誤した結果、人間は実際に行をスペースでインデントしているように見えます。これが私が見つけた理由です/^HISTORY EXPANSION
そして失敗しました/^The history library
(これは「歴史の拡大」セクションの最初の文です)。正しいパターンは次のとおりです。/^[[:space:]]{7}The history library...
man/lessがわかるように、セクションヘッダーではない各行の前に7つの「スペース」(ascii dec code 32)を追加するだけです(他の人が話すように太字で)。これがすべてのLinuxディストリビューション/ manバイナリに当てはまるかどうかは定かではありませんが、これまでにテストしたすべての場合に当てはまります。 (最初の検索から)manfinduseの '-atime'オプションの説明を見つけるために要約するには/^[[:space:]]{7}-atime
人間の出力がさらに通過するとき、各太字の文字は実際にはその文字であり、その後にバックスペースが続き、その文字が繰り返され、次の文字が続きます。太字で何かを見つけるには、/ ^ H..I..S..Tを検索します
あなたはステファンが指摘した記事でもそれを見つけるでしょう。