Linux 转义反斜杠后的Grep问题
我在试着把绳子弄断Linux 转义反斜杠后的Grep问题,linux,bash,grep,Linux,Bash,Grep,我在试着把绳子弄断 "SNTCHDCS06-Filesystem D:\\ Label:Data Serial Number f8271450" 从csv文件,但不知何故,我失败了悲惨 我知道我需要在两个反斜杠(一个用于shell,一个用于bash)的顶部添加两个反斜杠,但在这之后就不起作用了 下面的命令起作用 [root@nagiospdc01 folder]# grep -e "^SNTCHDCS06-Filesystem D:\\\\" in/masterlist.csv SNTCHD
"SNTCHDCS06-Filesystem D:\\ Label:Data Serial Number f8271450"
从csv文件,但不知何故,我失败了悲惨
我知道我需要在两个反斜杠(一个用于shell,一个用于bash)的顶部添加两个反斜杠,但在这之后就不起作用了
下面的命令起作用
[root@nagiospdc01 folder]# grep -e "^SNTCHDCS06-Filesystem D:\\\\" in/masterlist.csv
SNTCHDCS06-Filesystem D:\\ Label:Data Serial Number f8271450,SNTCHDCS06,10.24.64.210,Active Directory,AD Server,UCS,Filesystem D:\\ Label:Data Serial Number f8271450,Windows Team,0,XM_OPS_WIN,Windows Team,Y,Y,N,N,Y,Y,Y,Y,Y,N,N,Y,Y,ITOC
当我尝试在那之后grep空间时,grep不起作用,只是失败了
[root@nagiospdc01 folder]# grep -e "^SNTCHDCS06-Filesystem D:\\\\ " in/masterlist.csv
如果有人能告诉我正确的grep语法和命令,我将不胜感激。使用单引号
grep -e '^SNTCHDCS06-Filesystem D:\\ Label:Data Serial Number f8271450'
使用双引号时,bash会将\\
转换为单个\
。但是,bash不会查看单引号
从Bash手册:
将字符括在单引号(”
)中会保留引号中每个字符的文字值。单引号不能出现在单引号之间,即使前面有反斜杠
将字符括在双引号中(“
)将保留引号中所有字符的文字值,但$
、`
、\
除外,并且,当启用历史扩展时,!
。字符$
和`
在双引号中保留其特殊含义(请参阅)。反斜杠只有在后跟以下字符之一时才保留其特殊含义:$
,`
,“
、\
或换行符。在双引号中,后跟这些字符之一的反斜杠将被删除。没有特殊含义的反斜杠前面的字符将保持不变。双引号可以通过在双引号中加反斜杠来引引。如果启用,将执行历史扩展,除非出现在双引号中的n!
使用反斜杠转义。不删除!
前面的反斜杠
特殊参数*
和@
在双引号中具有特殊意义(请参阅)
grep中的-F选项允许搜索固定字符串。单引号还有助于搜索精确的字符串 -F、 --固定字符串: 将模式解释为固定字符串的列表,由新行分隔,其中任何一个都要匹配
grep -F 'SNTCHDCS06-Filesystem D:\\ Label:Data Serial Number f8271450' masterlist.csv
*SNTCHDCS06-Filesystem D:\\ Label:Data Serial Number f8271450*