我无法使用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
但是当我尝试使用以下命令grep时
omnidb -session 2017/03/31-918 -detail | sed -e 's/ //g' | grep bbtsrvvie4.cone.bombardier.com:/C'bbtsrvvie4.cone.bombardier.com[/C]'
我得到空输出。我试图使用引号也没有成功。
答案 0 :(得分: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\]'"
答案 1 :(得分:0)
将-F
与grep
:
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
会忽略像[]
这样的字符作为正则表达式。
答案 2 :(得分: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"