gpt4 book ai didi

linux - grep + 适合 solaris 的 grep 语法

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:25 25 4
gpt4 key购买 nike

以下 grep 命令的目标是用“.”匹配数字。 (见可以匹配的PARAM和不应该匹配的PARAM的例子)

问题是这种语法在 Linux 上工作正常但在 Solaris 上却不行

请建议如何使这种语法适合 Solaris(或者如果有人对可以在两种操作系统上工作的其他语法有其他意见)

   echo $PARAM | grep  '^\([0-9]\+\.\)\+[0-9]\+$'

匹配参数示例

 PARAM=2.4
PARAM=232.14
PARAM=202.14.34

不匹配参数示例

 PARAM=2.
PARAM=.14
PARAM=202
PARAM=2.a
PARAM=e.14
PARAM=202

最佳答案

哇,这是一项有趣的任务!花了一些时间试图找出为什么我的正则表达式在 Solaris 中只能部分工作。无论如何,诀窍是使用 egrep 而不是 grep。您可以引用他们的手册页来发现以下区别:

grep - search a file for a pattern

同时:

egrep - search a file  for  a  pattern  using  full  regular expressions

我注意到在我的 RH 系统上 grepegrep 具有相似的功能:

grep, egrep, fgrep - print lines matching a pattern

例如,您可以使用以下解决方案:

echo $PARAM | egrep '^([0-9]+\.)+[0-9]+$'

关于linux - grep + 适合 solaris 的 grep 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9309367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com