我的ksh脚本的目的是从源目录中删除一组文件,如果它符合某些资格。
我的文件名遵循以下模式:/folder/folder/folder/SrcFiles/195758_load_yield_rates_data_req82565.dat
我需要的是从目录中删除给定用户req99999
的文件以及大于或等于参数的ID。我的代码和sudo-code位于
SrcDir=$1
User=$2
RunId=$3
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。
我该怎么办?
答案 0 :(得分:1)
想出来
typeset -i RunId=$3
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