我想在他们之后没有空格的情况下寻求评论......
以下grep表达式不起作用来提取 // abc 模式,但我不确定原因......
echo "//asdf" | grep '//^[ ]*'
应该返回//asdf
,而
echo "// asdf" | grep '//^[ ]*'
应该什么都不返回。
总而言之,上面的grep语句以某种方式被破坏了,但看起来上面的表达式是"与非空格相邻的两个斜杠"。
'//^[ ]*'
以匹配以下表达式://a
,//asdfasdf
,//1234
,//another one 1234
。答案 0 :(得分:1)
这是因为否定^
必须放在里面 [ ]
块:
$ echo "//asdf" | grep '//[^ ]' //asdf $ echo "// asdf" | grep '//[^ ]'
即,使用[^ ]
代替^[ ]
。这样,saying [^ ]
匹配列表中不存在的单个字符。
而when you were saying ^\[ \]
你在说:
^
在字符串[ ]
匹配下面列表中的单个字符答案 1 :(得分:1)
两个斜杠后跟一个空格
grep '//[ ]'
两个斜杠后跟一个非空格字符
grep '//[^ ]'