使用Regex在Bash中列出文件

时间:2016-07-11 08:11:44

标签: regex bash

我有一个案例需要使用Regex在Bash的某个目录中查找/列出文件。

  myRegex="MYFILE[0-9]{15}"
  if [[ `ls` =~ "$myRegex" ]]
  then
      echo "Matching File found"
  else
      echo "No Matching File found"
  fi

虽然我在目录中有与此正则表达式匹配的文件,但它仍然显示“找不到匹配的文件”错误。

感谢您提前回答

1 个答案:

答案 0 :(得分:1)

问题实际上是报价。这应该解决它:

MY_REGEX="MYFILE[0-9]{15}"
if [[ "$(ls)" =~ $MY_REGEX ]]; then
    echo "Matching File found"
else
    echo "No Matching File found"
fi

Bash期望正则表达式文字,而不是字符串。