高分........请入..在线等..怎么删除一类文件...来者有分..

yuebenxian 2003-09-22 10:02:20
要求:
删除一类文件.文件格式:DDD_时期生成的_YYY_四位序号.各种文件格式
比如:DDD_20030922_YYY_0001.txt 或者DDD_20030506_YYY_0121.tmp
那么删除就需要删除以序号位参数的文件.
比如: 删除序号20到50的序号文件,那么这些文件中所有日期的和所有文件格式的从序号20到50的都需要删除...
这个shell如何写啊...
非常谢谢!!!!!!!!!!!
...全文
45 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaple 2003-11-08
  • 打赏
  • 举报
回复
不用shell,直接rm DDD_????????_YYY_00[20-50].*
liupengfei81 2003-09-25
  • 打赏
  • 举报
回复
up
daniel7443 2003-09-25
  • 打赏
  • 举报
回复
#/bin/sh
ls|grep DDD_*_YYY_00[20-50].*|rm
fierygnu 2003-09-22
  • 打赏
  • 举报
回复
也可以不用awk:
for file in DDD_*_YYY_*.*
do
file1=${file##*_}
number=`expr ${file1%%.*} + 0`
if [ $number -ge 20 -a $number -le 50 ]; then
echo $file
fi
done | xargs rm
fierygnu 2003-09-22
  • 打赏
  • 举报
回复
ls | awk '
BEGIN { FS = "[._]" }
/DDD_[0-9].*_YYY_[0-9].*\..*/{
number = $4 + 0;
if ((number >= 20) && (number <= 50))
print
}' | xargs rm
gdream 2003-09-22
  • 打赏
  • 举报
回复
#/bin/sh

count=20

while [ $count -lt 50 ] ;
do
echo "rm -rf DDD_20030922_YYY_00$count" ;
count=`expr $count + 1`
done
yuebenxian 2003-09-22
  • 打赏
  • 举报
回复
非常谢谢,,我试一试,马上结帐.
qqly 2003-09-22
  • 打赏
  • 举报
回复
试试如下的方式:但要确定好路径
find ./ -name DDD_200[1-3][0-9][0-9][0-9][0-9]_YYY_[0-9][0-9][0-9][0-9].txt -exe
c rm {} \;

find ./ -name DDD_200[1-3][0-9][0-9][0-9][0-9]_YYY_[0-9][0-9][0-9][0-9].tmp -exe
c rm {} \;


klbt 2003-09-22
  • 打赏
  • 举报
回复
学习。

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧