2010-09-01 64 views
4
的grep -o選項的

我運行下面的Sun Solaris上(在Linux其運行正常),但不是在Sun Solaris的Solaris相當於在Linux上

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(匹配字符串捕獲)

利迪婭

回答

3

Solaris grep似乎沒有這樣的選項。如果你只需要在一些solaris盒子上運行它,也許他們安裝了GNU grep? (例如,這個有/usr/local/gnu/bin/grep)。

如果你需要在solaris下運行,你不能使用grep。也許sed和awk可以使用?

0

那麼你可以使用NAWK的「老派」的方式。查看每個單詞並檢查您的模式

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

Sun的^ W^WOracle的grep不會這樣做。您需要下載GNU grep版本,最好從sunfreeware.com

0

在Solaris中,(OpenSolairs,的OpenIndiana等),你應該使用這樣的命令:

find . | xargs grep 'somestring' 

,將讓你你所追求的。