Солярис, эквивалентный опции -o для grep в Linux - PullRequest
5 голосов
/ 01 сентября 2010

Я запускаю следующую версию в 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 (для соответствия строкезахват)

лидия

Ответы [ 4 ]

3 голосов
/ 01 сентября 2010

В Solaris grep такой опции нет. Если вам просто нужно, чтобы это работало на некоторых блоках Solaris, возможно, они установили GNU grep? (Например, у этого есть под /usr/local/gnu/bin/grep).

Если вам это нужно для работы под любым солярисом, вы не можете использовать grep. Возможно, можно использовать sed и awk?

1 голос
/ 01 сентября 2010

Sun's ^ W ^ WOracle's grep этого не делает. Вам необходимо скачать GNU grep версию, желательно с sunfreeware.com .

0 голосов
/ 19 апреля 2011

В Solaris (OpenSolairs, OpenIndiana и т. Д.) Вы должны использовать такую ​​команду:

find . | xargs grep 'somestring'

Это даст вам то, что вы хотите.

0 голосов
/ 01 сентября 2010

тогда вы можете использовать nawk "старой школы". Просмотрите каждое слово и проверьте свои шаблоны

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