在if语句中使用正则表达式的Shell脚本会出错

时间:2014-02-01 02:22:46

标签: regex macos bash

我是shell脚本的新手,我正在尝试用if语句编写正则表达式。我在mac osx 10.6.8上使用bash shell。这是我试图运行的代码

#!/bin/bash

line="A903      ATGCGTCGTC"

if [[ $line =~ ^\w+\t[GATCN]+ ]]; then
        echo "Exiting ... Check File"
        exit 0
else
        echo "File ... OK"
fi

我应该将“退出...检查文件”作为输出,而不是“文件......确定”。我究竟做错了什么?谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

这个适用于我

#!/bin/bash

line="A903      ATGCGTCGTC"

if [[ $line =~ ^[[:alnum:]]+[[:space:]]+[GATCN]+ ]]; then
        echo "Exiting ... Check File"
        exit 0
else
        echo "File ... OK"
fi

找到有关POSIX正则表达式here

的信息