如何grep斜杠旁边的非空格

时间:2015-11-18 19:43:45

标签: regex grep whitespace slash

我想在他们之后没有空格的情况下寻求评论......

以下grep表达式不起作用来提取 // abc 模式,但我不确定原因......

echo "//asdf" | grep '//^[ ]*'应该返回//asdf,而

echo "// asdf" | grep '//^[ ]*'应该什么都不返回。

总而言之,上面的grep语句以某种方式被破坏了,但看起来上面的表达式是"与非空格相邻的两个斜杠"。

  • 什么是grep的正确方法"与空格相邻的两个斜线"?
  • 具体而言,我应该如何修改'//^[ ]*'以匹配以下表达式://a//asdfasdf//1234//another one 1234

2 个答案:

答案 0 :(得分:1)

这是因为否定^必须放在里面 [ ]块:

$ echo "//asdf" | grep '//[^ ]'
//asdf
$ echo "// asdf" | grep '//[^ ]'

即,使用[^ ]代替^[ ]。这样,saying [^ ]匹配列表中不存在的单个字符。

when you were saying ^\[ \]你在说:

  • ^在字符串
  • 的开头断言位置
  • [ ]匹配下面列表中的单个字符

答案 1 :(得分:1)

两个斜杠后跟一个空格

grep '//[ ]'

两个斜杠后跟一个非空格字符

grep '//[^ ]'