我正在尝试确定某个文件的格式是否为“AA [0-9] [0-9] [0-9]。
这就是我所拥有的
for file in *.pdf; do
if [ ${file}=="AA"[[:space:]][0-9][0-9][0-9] ]; then
#perform action
fi
然而我收到错误“AA:一元运算符预期”
我该如何解决这个问题?
答案 0 :(得分:3)
模式匹配必须使用bash
条件表达式,而不是[
命令。
for file in *.pdf; do
if [[ $file = AA\ [0-9][0-9][0-9].pdf ]]; then
...
fi
done
答案 1 :(得分:2)
您的原始陈述永远不会匹配,因为它不会以.pdf结尾,但我认为您的意思是“AA [0-9] [0-9] [0-9] .pdf”
for file in *.pdf ; do
if expr "$file" : 'AA [0-9][0-9][0-9].pdf' >/dev/null; then
#perform action
fi
done