shell 如何通过在Airflow中传递命令删除字符串.数字.字符串格式的文件

vu8f3i0k  于 2023-01-09  发布在  Shell
关注(0)|答案(2)|浏览(111)

这是我使用的ABD.123244.trig文件格式,当我尝试删除终端中的文件时,我使用了rm -f ABD.+([0-9]).trig,但当我使用相同的thru Airflow调度程序时,它抛出error unexpected token '('
请帮帮忙
此命令rm -f ABD.+([0-9]).trig在通过气流调度程序时不起作用。它抛出error unexpected token '('

7gyucuyw

7gyucuyw1#

Airflow bash操作符使用以下命令运行bash命令:

bash -c "<your bash command>"

要在bash中使用扩展的globbing模式,您必须启用extglob shell选项。您可以尝试:

BashOperator(task_id="bash_task", bash_command="shopt -s extglob\n rm -f ABD.+([0-9]).trig")
vojdkbi0

vojdkbi02#

+不是bash中的特殊字符,因此,您的表达式+(...)没有任何意义,.+也没有任何意义。
你想的是正则表达式而不是gobbing模式。
试试这个:

echo ABD.[0-9]*

整个命令就是

rm -f ABD.[0-9]*.trig

相关问题