AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 539658
Accepted
Ungeheuer
Ungeheuer
Asked: 2019-09-09 07:27:02 +0800 CST2019-09-09 07:27:02 +0800 CST 2019-09-09 07:27:02 +0800 CST

确定系统提供的正则表达式库

  • 772

less我昨天 尝试使用以下正则表达式: ^\+1[[:space:]]*$,它在grep. 这在 中不起作用less,所以我检查了手册页以查看它支持的内容,并发现了这一点:

/pattern
    Search forward in the file for the N-th line containing the pattern. N defaults to 1. The pattern is a regular expression, as recognized by the regular expression library supplied by your system. 
    The search starts at the first line displayed (but see the -a and -j options, which change this).

我在 中问过这个问题/dev/chat,对于使用什么库,甚至选择库的优先级没有太多共识(对我来说),更不用说实际检查当前使用什么的方法了。我目前使用 Fedora 30,但希望答案与 Linux 无关。

所以,问题是:

  1. 如何确定我的系统less将使用哪个正则表达式库?
  2. 我的系统提供的正则表达式库是什么意思?
  3. 这个提供的正则表达式库会影响哪些其他实用程序和程序?
  4. 如果您提到系统可能使用的任何特定正则表达式库,请提供指向该正则表达式库页面的链接(如果可能)。

ldd节目

[unge@localhost ~]$ ldd "$(command -v less)"
    linux-vdso.so.1 (0x00007fff040e0000)
    libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f6733339000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f6733173000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f67333be000)
regular-expression
  • 1 1 个回答
  • 544 Views

1 个回答

  • Voted
  1. Best Answer
    Stephen Kitt
    2019-09-09T10:15:19+08:002019-09-09T10:15:19+08:00
    1. 如果您指的是less二进制文件,less --version它将告诉您它正在使用哪个正则表达式实现;例如

      $ less --version
      less 487 (GNU regular expressions)
      Copyright (C) 1984-2016  Mark Nudelman
      
      less comes with NO WARRANTY, to the extent permitted by law.
      For information about the terms of redistribution,
      see the file named README in the less distribution.
      Homepage: http://www.greenwoodsoftware.com/less
      

      在构建时,库由--with-regex给定的 to确定./configure:

      --with-regex=LIB        select regular expression library (LIB is one of auto,none,gnu,pcre,posix,regcmp,re_comp,regcomp,regcomp-local) [auto]
      

      并在构建日志中进行跟踪。

      其中一些实现可作为单独的库(pcre例如)提供,其他实现包含在 C 库中(gnu例如),其中一个包含在less源代码中(regcomp-local)。

    2. 我认为该表达式指的是系统上可用的任何库,至少less在选项的上下文中。auto构建后,给定的less二进制文件不会更改其正则表达式实现。

    3. 没有任何。

    支持的库是:

    • POSIXregcomp(在版本字符串中标识为“POSIX”);
    • PCRE(“PCRE”);
    • GNU C 库re_compile_pattern(“GNU”);
    • regcmp(“V8”);
    • Unix V8 regcomp,由系统提供或less自己的副本(Henry Spencer 的实现;“Spencer V8”);
    • re_comp(“BSD”)。
    • 6

相关问题

  • 如何在匹配后删除几个字符?

  • 使用 POSIX 工具正确处理带有 BOM 的 Unicode 文件

  • 为什么正则表达式与 sed 命令的输入不匹配 [重复]

  • 使用特殊字符转换密码以与期望脚本一起使用

  • 更少:使用 AND 的多个过滤条件

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve