dmy*_*ush 5 less man regular-expression
我经常提到 man bash 来回忆“历史扩展”部分(事件/单词/修饰符)的使用。我知道我需要的男人部分是“历史扩展”。所以我输入HISTORY EXPANSION
前向搜索列表'/'。当然,less 不是直接跳转到“HISTORY EXPANSION”部分,而是显示给定人中此字符串的所有出现。因此,我认为输入以下内容会很棒:
/^HISTORY EXPANSION
Run Code Online (Sandbox Code Playgroud)
所以我可以跳到“行首”历史扩展。
既不工作/^HISTORY EXPANSION
也不/\^HISTORY EXPANSION
工作
在少人我看到...
/pattern
在文件中向前搜索包含该模式的第 N 行。N 默认为 1。该模式是一个正则表达式,由您的系统提供的正则表达式库识别。
我看到其他人也在研究这个,但目的不同:https : //stackoverflow.com/questions/14698364/what-is-the-regular-expression-library-supplied-by-my-system
我按照步骤操作,但仍然无法确定我的机器上使用的是哪个正则表达式版本。这是较少二进制文件的共享库依赖项输出
$ 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)
Run Code Online (Sandbox Code Playgroud)
那么,如何在较少的搜索中指示行的开始,以便我可以轻松跳转到我需要的 man 部分?
经过尝试和实验,人类似乎确实用空格缩进了行。/^HISTORY EXPANSION
这就是我可以找到但失败的原因 /^The history library
(这是历史扩展部分的第一句话)。这是正确的模式:
/^[[:space:]]{7}The history library...
正如我们所看到的, man/less 只是在不是节标题的每一行前面添加 7 个“空格”(ascii dec code 32)(以粗体显示,正如我看到其他人所说的那样)。我不能肯定地说这是否适用于所有 Linux 发行版/man 二进制文件,但到目前为止我测试过的所有文件都是如此。总结一下,以便在 man find 使用中找到(从第一次搜索)'-atime' 选项的描述
/^[[:space:]]{7}-atime