免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6185 | 回复: 15
打印 上一主题 下一主题

批量删除文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-01 15:37 |只看该作者 |倒序浏览
如何做一个shell 实现在一个目录下删除一批文件,文件内容中有汉字和数字,字节数不一致,但是如果里面的数字全为0的或者0.00的话,将这些文件全部删除。请教各位前辈

论坛徽章:
0
2 [报告]
发表于 2003-03-01 17:13 |只看该作者

批量删除文件

有点小麻烦.

论坛徽章:
0
3 [报告]
发表于 2003-03-01 21:11 |只看该作者

批量删除文件

斑竹在那呀,出来回答一下吗?

论坛徽章:
0
4 [报告]
发表于 2003-03-02 15:17 |只看该作者

批量删除文件

是有点麻烦,
你的文件大概什么样的结构?可以具体问题具体对待.

论坛徽章:
0
5 [报告]
发表于 2003-03-02 17:13 |只看该作者

批量删除文件

请红袖作答!!!

论坛徽章:
0
6 [报告]
发表于 2003-03-02 18:11 |只看该作者

批量删除文件

老头我又献丑了:

  1. #!/usr/bin/ksh
  2. ls | while read filename
  3. do
  4.     if cat $filename | tr "0" "!" | tr [:digit:] "1" | grep 1
  5.     then
  6.         echo "delete $filename"
  7.         rm -f $filename
  8.     else
  9.         echo "!delete! $filename"
  10.     fi
  11. done
复制代码

论坛徽章:
0
7 [报告]
发表于 2003-03-02 18:38 |只看该作者

批量删除文件

老头,你太厉害了,大家都没有跟贴,说明你是对的,可me看不懂啊!
楼主说的是“数字全为0的或者0.00的话,将这些文件全部删除”;
cat $filename |tr "0" "!"|tr '[] "1" |grep 1
这句话,不是先将$filename里的0替换成1,然后又将filename里的所有数字替换成1,最后查看filename里是否有1,有的话就del,没的话打印一句话!

老头你可一定的告诉我!

^=^,不告诉小心TJJDS!!

论坛徽章:
0
8 [报告]
发表于 2003-03-02 19:24 |只看该作者

批量删除文件

cat $filename |tr "0" "!"|tr '[] "1" |grep 1
这句话,不是先将$filename里的0替换成1,然后又将filename里的所有数字替换成1,最后查看filename里是否有1,有的话就del,没的话打印一句话!


....
这都懂了,应该明白了。找到1就说明有非0数字文件,就不应该删,否则数字就是全0(或无0),就删除了。

噢,我的判断写反了了,老了真是老了,代码应该为:


  1. #!/usr/bin/ksh
  2. ls | while read filename
  3. do
  4.     if cat $filename | tr "0" "!" | tr [:digit:] "1" | grep 1
  5.     then
  6.         echo "!delete! $filename"
  7.     else
  8.         echo "delete $filename"
  9.         rm -f $filename
  10.     fi
  11. done
复制代码

论坛徽章:
0
9 [报告]
发表于 2003-03-03 08:03 |只看该作者

批量删除文件

这样子,不知道大家同意不同意哦~

  1. #!/bin/sh
  2. for i in *; do
  3.     if grep -q '[0-9]' $i; then
  4.         if  grep -q '[1-9]' $i; then
  5.             echo "$i -- contains other digits, keep it"  
  6.         else
  7.             echo "$i -- (DELETE)" # 考虑成熟后可以把这句改成 rm $i
  8.         fi
  9.     fi
  10. done
复制代码

论坛徽章:
0
10 [报告]
发表于 2003-03-03 08:27 |只看该作者

批量删除文件

原帖由 "biansj"]if cat $filename | tr "0" "!" | tr [ 发表:
"1" | grep 1

我完全同意红袖的,他这句好象不对,我试了一下,没有把其它的字符转换成1?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP