ksh:模式匹配数字

ksh: pattern matching numbers

我的 ksh 脚本的目的是从我的源目录中删除一组符合特定条件的文件。

我的文件名遵循以下模式:/folder/folder/folder/SrcFiles/195758_load_yield_rates_data_req82565.dat

我需要的是从给定用户 req99999 和大于或等于参数的 ID 的目录中删除文件。我的代码和 sudo 代码如下

SrcDir=
User=
RunId=

files=$( ls ${SrcDir}*)

for i in $files ; do
  if [[ $i == *${User}*.dat ]]; then
    echo $i
    fileRunID = ## How do I extract the ids from the file?
    if [[ $fileRunID >= $RunID ]]; then
        echo Delete: echo $i
        rm -f $i
    fi
  fi
done

我最初的 if 语句有效,我得到了用户的文件。我的下一个计划是从文件中提取 ID,然后在另一个 if 语句中使用它来将它与输入的 RunID 进行匹配。

我应该如何进行?

想通了

typeset -i RunId=

files=$( ls ${SrcDir}*)

for i in $files; do
 if [[ $i == *${User}*.dat ]]; then
    fileRunId=`echo $i | cut -b 32-37`
    typeset -i fileRunId
    if [[ $fileRunId -eq $RunId  ||  $fileRunId -gt $RunId ]]; then
        #echo Delete: $i
        rm -f $i
    fi
  fi
done