Bash:将 grep 字符串输入到正则表达式中会产生意外结果

Bash:将 grep 字符串输入到正则表达式中会产生意外结果

我有点困惑,但这段脚本产生了意想不到的结果。我发现 htmlstring 是

<!-- <td><a href="https://aeronav.faa.gov/upload_313-d/terminal/DDTPPA_190228.zip"</a>DDTPPA_190228</td> -->

但是正则表达式得到“1901”作为循环,而根据 htmlstring 的初始值,这应该是不可能的。WTF...

htmlstring 和 cycle 的值会随着时间的推移而改变,但在接下来的一个月左右有效。

if [ ! -e /tmp/dtpp ]
then
    curl https://www.faa.gov/air_traffic/flight_info/aeronav/digital_products/dtpp/ -o /tmp/dtpp
fi
htmlstring=`grep "DDTPPA" /tmp/dtpp | grep zip |  head -n 2 `
echo $htmlstring
 regex='DDTPPA_([0-9]{4})[0-9]{2}'
[[ $htmlstring =~ $regex ]]
cycle=${BASH_REMATCH[1]}
echo "cycle:"
echo $cycle
extractCycle $htmlstring

我正在运行 GNU bash,版本 5.0.0(1)-release(x86_64-pc-linux-gnu)、grep(GNU grep)3.3、head(GNU coreutils)8.30。

相关内容