如何 grep 查找与斜杠相邻的非空格

How to grep for non-whitespaces adjacent to slashes

我想用 grep 查找后面没有 space 的评论...

下面的 grep 表达式 无法 提取 //abc 模式,但我不确定为什么...

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

echo "// asdf" | grep '//^[ ]*' 应该 return 什么都没有。

总而言之,上面的 grep 语句不知何故被破坏了,但上面的表达式似乎在说 "two slashes adjacent to a non- whitespace".

这是因为否定 ^ 必须放在 内部 [ ] 块中:

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

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

when you were saying ^\[ \] 你说的是:

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

两个斜杠后跟一个 space

grep '//[ ]'

两个斜杠后跟一个非space字符

grep '//[^ ]'