Jon*_*son 23
我在SunOS 5.10上看到了同样的问题. /usr/bin/egrep
不支持扩展正则表达式.
尝试使用/usr/xpg4/bin/egrep
:
$ echo 'this line has whitespace
thislinedoesnthave' | /usr/xpg4/bin/egrep '[[:space:]]'
this line has whitespace
Run Code Online (Sandbox Code Playgroud)
另一个选择可能就是使用perl:
$ echo 'this line has whitespace
thislinedoesnthave' | perl -ne 'chomp;print "$_\n" if /[[:space:]]/'
this line has whitespace
Run Code Online (Sandbox Code Playgroud)
pax*_*blo 14
如果你正在使用'降级'版本的grep(我引用这个术语是因为我工作的大多数UNIX仍然使用原始的RE,而不是那些带有" \s
"或" [[:space:]]
"的那些花哨的:-),你可以恢复到最低形式的RE.
例如,如果:space:
定义为空格和制表符,只需使用:
egrep '[ ^I]' file
Run Code Online (Sandbox Code Playgroud)
这^I
是一个实际的制表符,而不是两个字符^
和I
.
这假定:space:
被定义为制表符和空格,否则调整[]
字符内的选项.
使用降级RE的优点是它们应该适用于所有平台(至少对于ASCII; Unicode或非英语语言可能有不同的规则,但我很少发现需要).