Aix grep 通配符不起作用

Aix grep 通配符不起作用

我有一个名为信息有这条线

CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/NONE/ORDRSP/758

我正在做一个grep(平台是AIX 6.1)

grep CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/NONE/ORDRSP/758 message

它找到该行并显示输出

但是,当我尝试使用通配符时,如下所示

grep CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/.*/ORDRSP/758 message

它没有找到这条线。我也尝试过使用单引号/双引号。它不起作用。我在这里错过了什么吗?我很困惑。

答案1

笔记:我无法在 AIX 上测试这一点,但以下内容适用于 GNU grep。

grep CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/.\*/ORDRSP/758 message

或者:

grep 'CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/.\+/ORDRSP/758' message

这是因为在 grep 的基本正则表达式中,大多数元字符只有在转义时才具有特殊含义。从grep手册页:

In basic regular expressions the meta-characters ?, +, {, |, (, and ) lose
their special meaning;  instead  use  the backslashed versions \?, \+, \{,
\|, \(, and \).

答案2

尝试

egrep CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/*/ORDRSP/758 message

相关内容