如何grep文本中的一个空格?
cat a.txt| grep ' '
或者
cat a.txt| grep '\s '
答案1
如果您只想在问题中输入一个空格,则可以使用以下命令:
grep -e '^\s[^\s]' -e '[^\s]\s$' -e '[^\s]\s[^\s]' a.txt
或者对于 POSIX 变体:
grep -e '^ [^ ]' -e '[^ ] $' -e '[^ ] [^ ]' a.txt
或者可读性较差的 POSIX 变体:
grep '\(^\|[^ ]\)\ \([^ ]\|$)' a.txt
假设您要排除包含多个相邻空格的行,则明确要求有一个空格,并且前面没有空格,后面也没有空格。
另外,值得注意的是,并非所有版本的 grep 都支持 '\s' 正则表达式控制。
答案2
我想我找到了:
grep "\+[[:space:]]\+" a.xml
答案3
变体 2 只会找到两个空格。如果您使用'\s'
相反的方式,两种变体都可以工作。
您可以轻松地自己测试一下,那么您的实际问题是什么?