2017-04-21 82 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"