BASH:如何确定文件名格式如下 - > “AA [0-9] [0-9] [0-9] .pdf”

时间:2015-05-24 18:10:01

标签: bash

我正在尝试确定某个文件的格式是否为“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:一元运算符预期”

我该如何解决这个问题?

2 个答案:

答案 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