aix 上的 sed 正则表达式问题

Posted

技术标签:

【中文标题】aix 上的 sed 正则表达式问题【英文标题】:sed regex issues on aix 【发布时间】:2012-06-18 07:01:24 【问题描述】:

可以帮忙翻译下面的 sed 命令,让它在 aix 上做同样的事情吗?

sed -e '/\([a-zA-Z0-9]\1,10\\s\1,5\\"\)/!d'

在 linux 上运行良好,但在 AIX 上似乎什么都不做

【问题讨论】:

此正则表达式匹配 以 1 到 10 个字母数字字符开头,后跟 1 到 5 个空格和双引号的行(我认为不需要转义双引号)!d 表示打印匹配的行。 sed 命令对我来说看起来不错,但我没有 AIX 机器来测试它。 看来双引号有问题,不管转义与否AIX都不喜欢。 【参考方案1】:

原来问题与空格字符“\s”有关

我用转义的空格“\”替换了“\s”,它可以工作

sed -e '/\([a-zA-Z0-9]\1,10\\ \1,5\\"\)/!d'

【讨论】:

以上是关于aix 上的 sed 正则表达式问题的主要内容,如果未能解决你的问题,请参考以下文章

多行上的 sed 正则表达式无法捕获所有

OS X 上的 sed - 似乎无法在正则表达式中使用 +

AIX 机器中交换信息的正则表达式

如何计算 AIX 上每个文件的正则表达式匹配总数

使用 linux 和 AIX 的正则表达式替换 bash 脚本中的字符串

Shell编程之正则表达式(sed)