我无法在文件下面写正则表达式

时间:2015-03-16 12:18:49

标签: linux ksh

我在某个地方做错了我想请让我知道。正则表达式存在一些问题。

#!/bin/ksh

file="11111111_111.XXXX"
# file="11111111_111.XXX"

case $file in

        /[0-9]*\_.*\.XXXX/)

                echo "Inside SFTP"
        ;;
        [0-9]{8}_\d*\.XXX)

                echo "Inside WHS"
        ;;

        *)
                echo "There is no file"

        ;;
esac

2 个答案:

答案 0 :(得分:0)

案例模式不是bash中的正则表达式。它们根据“路径名扩展”的规则进行扩展。执行man bash并搜索该短语以查看详细信息。

答案 1 :(得分:0)

<强> EDITED

有不同版本的ksh,语法不同。匹配与file name patterns匹配,这与其他语言的正则表达式不同。我发现以下模式适用于Linux和AIX:

+([0-9])_+([0-9]).XXXX

在最低公共级别,不支持\d等字符类或匹配数{n},因此如果要匹配八位数,则需要输入{{ 1次}八次。