我正在尝试在 shell bash 中使用过滤器列出文件。
这个例子有效:
result=$(ls *{A1,A2}*.txt)
echo $result
文件1_A1.txt,文件2_A2.txt
但是当将过滤器放入变量中时,它不起作用:
filter={A1,A2}
result=$(ls *"$filter"*.txt)
echo $result
ls: 无法访问 '{A1,A2}': 没有这样的文件或目录
我使用了错误的语法。我该如何修复它?
Best
使用扩展通配符:
shopt -s extglob
filter="A1|A2"
result=(*@($filter)*.txt)
echo "${result[@]}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)