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
我的 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