Linux 对grep有意见吗
我无法使用grep在字符串下方grep 下面是具有字符串的输出Linux 对grep有意见吗,linux,bash,grep,Linux,Bash,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 Fini
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]'
我得到了空输出。我也尝试过使用引号,但没有成功。尝试以下内容
如果要在grep
中使用单引号,则必须用双引号将搜索字符串括起来
使用\
表示/
,[
和]
omnidb -session 2017/03/31-918 -detail | sed -e 's/ //g' | grep "Objectname:bbtsrvvie4.cone.bombardier.com:\/C'bbtsrvvie4.cone.bombardier.com\[\/C\]'"
将
-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
表示--固定字符串。然后grep
将忽略像[]
这样的字符作为正则表达式。您需要对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"