加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Shell脚本:if语句中的RegEx

发布时间:2020-12-16 01:51:48 所属栏目:安全 来源:网络整理
导读:我似乎无法弄清楚如何在if语句中正确编写正则表达式.我希望它打印出所有带有“结束日期”的行. NUMBERS包含一个包含以下内容的文本文件: End Date ABC ABC ABC ABC ABC ABC05/15/13 2 7 1 1 4 5 04/16/13 4 3 0 1 3 6 03/17/13 6 9 3 8 5 9 02/18/13 8 2 7
我似乎无法弄清楚如何在if语句中正确编写正则表达式.我希望它打印出所有带有“结束日期”的行.

NUMBERS包含一个包含以下内容的文本文件:

End Date    ABC ABC ABC ABC ABC ABC
05/15/13    2   7   1   1   4   5  
04/16/13    4   3   0   1   3   6  
03/17/13    6   9   3   8   5   9  
02/18/13    8   2   7   1   0   1  
01/19/13    1   9   2   2   5   2  
12/20/12    7   2   7   1   0   1

以下是我的代码片段,我遇到了以下问题:

if [ -f $NUMBERS ]
then
        while read line
        do
                if [ $line = ^End ]
                then
                        echo "$line"
                else
                        echo "BROKEN!"
                        break                   
                fi
        done < $NUMBERS
else
        echo "===== $NUMBERS failed to read  ====="
fi

输出是:

Broken!

解决方法

如果你正在使用bash,请尝试=?:

...
if [[ $line =~ ^End ]]

请注意,以下内容不起作用:1

if [[ "$line" =~ "^End" ]]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读