我试图弄清楚如何处理grep
. 如何判断grep
查找包含空格或制表符的字符串?手册没有告诉我什么。\s
似乎适用于空白,\S
似乎适用于非空白,但它包括所有空白字符(空格和制表符),如果我将它放在括号中,将反斜杠和\s
视为单独的字符,则它不起作用。
你确定吗?
$ printf "a \tb\na b\na\tb" | grep '.\s*.'
a b
a b
a b
$ grep -V
grep (GNU grep) 2.14
Copyright (C) 2012 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)
即,如图所示,\s
匹配了空格和制表符——我包含了 'a' 和 'b' 只是为了突出显示它。
你得到了什么?
根据我的经验,grep 最适合 POSIX 字符类 - 例如查找 [[:space:]]。我在一些程序中广泛使用 grep 来验证用户输入,并且如果我坚持使用 POSIX 类,则从未遇到过问题。
然而,正如评论者所指出的,你的问题并不完全清楚。
归档时间: |
|
查看次数: |
39996 次 |
最近记录: |