gpt4 book ai didi

regex - 如何编写这个 grep 正则表达式

转载 作者:行者123 更新时间:2023-12-02 07:49:35 25 4
gpt4 key购买 nike

if [ '`echo "$url" | grep (\.tar\.gz|\.tar\.bz2|\.zip|\.rar|\.7z)$`' ] ; then

语法错误,我只想检查文件扩展名。

最佳答案

首先,您需要删除 '',否则测试只是一个始终计算为 true 的字符串。您需要将正则表达式放在引号中,因为 bash 会解释括号。您还需要使用 egrep(相当于 grep -E)。

if [ `echo "$url" | egrep "(\.tar\.gz|\.tar\.bz2|\.zip|\.rar|\.7z)$"` ] ; then

您还可以通过将 . 分解为组并将 tar.{gz,bz2} 分组来缩短正则表达式:

if [ `echo "$url" | egrep "\.(tar\.(gz|bz2)|zip|rar|7z)$"` ] ; then

对于 future ,请注意 bash 给你的错误,它告诉你很多:bash: syntax error near unexpected token ( suggests that error is around the (,我刚刚向您展示的正是错误所在。

Jonathan's answer提供有关改进测试的更多提示。

关于regex - 如何编写这个 grep 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4527395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com