Solaris 相当于 Linux 上 grep 的 -o 选项

发布于 2024-09-17 00:41:09 字数 413 浏览 9 评论 0原文

我在 Sun Solaris 上运行以下命令 - 它在 Linux 上运行正常,但在 Sun Solaris 上运行不佳:

name="(WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT = 10234))"
echo $name | grep -o "(WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT =  10234))"
grep: illegal option -- o
Usage: grep -hblcnsviw pattern file . . .

我的问题是 Sun Solaris 上的哪个选项与选项 grep -o 执行相同的任务(以匹配字符串)捕获)在 Linux 上?

I run the following on Sun Solaris — it runs OK on Linux but not on Sun Solaris:

name="(WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT = 10234))"
echo $name | grep -o "(WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT =  10234))"
grep: illegal option -- o
Usage: grep -hblcnsviw pattern file . . .

My question is which option on Sun Solaris does the same task as the option grep -o (to match string capture) on Linux?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

为你拒绝所有暧昧 2024-09-24 00:41:09

Solaris grep 似乎没有这样的选项。如果您只需要在某些 Solaris 机器上运行它,也许它们安装了 GNU grep? (例如,这个位于 /usr/local/gnu/bin/grep 下)。

如果您需要在任何 Solaris 下运行它,则不能使用 grep。也许可以使用 sed 和 awk ?

Solaris grep doesn't seem to have such an option. If you just need this to run on some Solaris boxes, perhaps they have GNU grep installed? (E.g. this one has it under /usr/local/gnu/bin/grep).

If you need this to run under any Solaris, you cannot use grep. Perhaps sed and awk can be used?

全部不再 2024-09-24 00:41:09

Sun 的^W^WOracle 的grep 不这样做。您需要下载 GNU grep 版本,最好从 sunfreeware.com 下载。

Sun's^W^WOracle's grep doesn't do that. You need to download the GNU grep version, preferably from sunfreeware.com.

弄潮 2024-09-24 00:41:09

那么你可以使用“老派”方式的 nawk 。仔细检查每个单词并检查你的模式

nawk '{
  for(i=1;i<=NF;i++){
      if($i == "your pattern") {
           print $i
      }
  }
}' file

then you can use nawk the "old school" way. Go over each word and check against your patterns

nawk '{
  for(i=1;i<=NF;i++){
      if($i == "your pattern") {
           print $i
      }
  }
}' file
旧街凉风 2024-09-24 00:41:09

在 Solaris 中(OpenSolaris、OpenIndiana 等),您应该使用如下命令:

find . | xargs grep 'somestring'

这将得到您想要的结果。

Within Solaris, (OpenSolaris, OpenIndiana, etc.) you should use a command like this:

find . | xargs grep 'somestring'

That will get you what you are after.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文