Solaris等效于Linux上的grep的-o选项

时间:2010-09-01 06:50:14

标签: linux grep solaris options

我在sun Solaris上运行以下命令(在Linux上运行OK)但在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相同的选项(匹配字符串捕获)

利迪娅

4 个答案:

答案 0 :(得分:3)

Solaris grep似乎没有这样的选项。如果你只是需要在一些solaris盒子上运行,也许他们安装了GNU grep? (例如,这个有/usr/local/gnu/bin/grep)。

如果你需要在任何solaris下运行,你就不能使用grep。也许可以使用sed和awk?

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

在Solaris,(OpenSolairs,OpenIndiana等)中,你应该使用这样的命令:

find . | xargs grep 'somestring'

这会让你得到你想要的东西。