2017-04-21 89 views
0

我無法使用grep grep下面的字符串。grep出現問題

下面是具有輸出字符串

omnidb -session 2017/03/31-918 -detail | sed -e 's/ //g' 

Objectname:bbtsrvvie4.cone.bombardier.com:/C'bbtsrvvie4.cone.bombardier.com[/C]' 

Objecttype:WinFS 

Objectstatus:Completed 

Started:FriMar3122:00:132017 

Finished:FriMar3123:06:582017 

Objectsize:23519123KB 

Backuptype:Full 

Protection:Protectedfor90days 

但是,當我嘗試使用以下命令

omnidb -session 2017/03/31-918 -detail | sed -e 's/ //g' | grep bbtsrvvie4.cone.bombardier.com:/C'bbtsrvvie4.cone.bombardier.com[/C]' 

到grep我得到空的輸出。我試圖用引號也沒有成功。

回答

0

嘗試之後,

如果你想在grep,你必須圍繞你的檢索串用雙引號使用單引號。

使用\/[]

omnidb -session 2017/03/31-918 -detail | sed -e 's/ //g' | grep "Objectname:bbtsrvvie4.cone.bombardier.com:\/C'bbtsrvvie4.cone.bombardier.com\[\/C\]'" 
0

使用-Fgrep

omnidb -session 2017/03/31-918 -detail | sed -e 's/ //g' | grep -F "bbtsrvvie4.cone.bombardier.com:/C'bbtsrvvie4.cone.bombardier.com[/C]'" 

-F--fixed-strings。然後grep將忽略像[]這樣的字符作爲正則表達式。

0

您需要用雙引號grep模式,需要逃避的情況方括號,因爲他們是爲了在指定範圍內的正則表達式像下面

omnidb -session 2017/03/31-918 -detail | sed -e 's/ //g' | grep 
"bbtsrvvie4.cone.bombardier.com:/C'bbtsrvvie4.cone.bombardier.com\[/C\]'" 

別急!這是不必要的使用grep,你可能已經完成,只需要sed像下面這樣:

omnidb -session 2017/03/31-918 -detail | 
sed -ne "s/ //g;/bbtsrvvie4.cone.bombardier.com:\/C'bbtsrvvie4.cone.bombardier.com\[\/C\]'/p"