如何 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".
- grep "two slashes adjacent to a whitespace" 的正确方法是什么?
- 具体来说,我应该如何修改
'//^[ ]*'
以匹配以下表达式://a
、//asdfasdf
、//1234
、//another one 1234
.
这是因为否定 ^
必须放在 内部 [ ]
块中:
$ echo "//asdf" | grep '//[^ ]'
//asdf
$ echo "// asdf" | grep '//[^ ]'
即使用[^ ]
代替^[ ]
。这样,saying [^ ]
您匹配列表中不存在的单个字符。
而 when you were saying ^\[ \]
你说的是:
^
断言字符串开头的位置
[ ]
匹配下面列表中的单个字符
两个斜杠后跟一个 space
grep '//[ ]'
两个斜杠后跟一个非space字符
grep '//[^ ]'
我想用 grep 查找后面没有 space 的评论...
下面的 grep 表达式 无法 提取 //abc 模式,但我不确定为什么...
echo "//asdf" | grep '//^[ ]*'
应该 return //asdf
,而
echo "// asdf" | grep '//^[ ]*'
应该 return 什么都没有。
总而言之,上面的 grep 语句不知何故被破坏了,但上面的表达式似乎在说 "two slashes adjacent to a non- whitespace".
- grep "two slashes adjacent to a whitespace" 的正确方法是什么?
- 具体来说,我应该如何修改
'//^[ ]*'
以匹配以下表达式://a
、//asdfasdf
、//1234
、//another one 1234
.
这是因为否定 ^
必须放在 内部 [ ]
块中:
$ echo "//asdf" | grep '//[^ ]' //asdf $ echo "// asdf" | grep '//[^ ]'
即使用[^ ]
代替^[ ]
。这样,saying [^ ]
您匹配列表中不存在的单个字符。
而 when you were saying ^\[ \]
你说的是:
^
断言字符串开头的位置[ ]
匹配下面列表中的单个字符
两个斜杠后跟一个 space
grep '//[ ]'
两个斜杠后跟一个非space字符
grep '//[^ ]'