当前位置:  开发笔记 > 编程语言 > 正文

egrep搜索空格

如何解决《egrep搜索空格》经验,为你挑选了2个好方法。

我正在尝试使用带有正则表达式模式的egrep来匹配空格.

我之前使用过PerEx和C#的RegEx,它们都支持\s搜索空格的模式.egrep(或至少我正在使用的版本)似乎不支持这种模式.

在网上的一些文章中,我遇到了一个简写[[:space:]],但这似乎不起作用.任何帮助表示赞赏.

使用:SunOS 5.10



1> Jon Ericson..:

我在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

另一个选择可能就是使用perl:

$ echo 'this line has whitespace
thislinedoesnthave' | perl -ne 'chomp;print "$_\n" if /[[:space:]]/'
this line has whitespace



2> paxdiablo..:

如果你正在使用'降级'版本的grep(我引用这个术语是因为我工作的大多数UNIX仍然使用原始的RE,而不是那些带有" \s"或" [[:space:]]"的那些花哨的:-),你可以恢复到最低形式的RE.

例如,如果:space:定义为空格和制表符,只需使用:

egrep '[ ^I]' file

^I是一个实际的制表符,而不是两个字符^I.

这假定:space: 定义为制表符和空格,否则调整[]字符内的选项.

使用降级RE的优点是它们应该适用于所有平台(至少对于ASCII; Unicode或非英语语言可能有不同的规则,但我很少发现需要).

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有