当前位置:  技术问答>linux bash shell命令:文本搜索工具Grep命令选项及实例 iis7站长之家

问一个shell编程的问题:如何删除当前日期前n天的文件

    来源: 互联网  发布时间:2015-11-09

    本文导语:  存在一个目录,查找其中是按照yyyymmdd格式命名的文件;取当前日期,比如是20060213,前半个月是20060128;删除小于20060128的文件。 请问,用shell脚本如何实现? | #include  #include  int main(int arg...

存在一个目录,查找其中是按照yyyymmdd格式命名的文件;取当前日期,比如是20060213,前半个月是20060128;删除小于20060128的文件。
请问,用shell脚本如何实现?

|
#include 
#include 
int main(int argc,char **argv)
{
        time_t time_tmp;
        struct tm *tm_now;

        if((2==argc && isdigit(argv[1][0]))||(3==argc && isdigit(argv[2][0]) && ('D'==argv[1][0] || 'M'==argv[1
][0])))
        {
                switch (argv[1][0])
                {
                        case 'M':
                                time_tmp=time(NULL);
                                tm_now=localtime(&time_tmp);
                                tm_now->tm_mon=tm_now->tm_mon-atoi(argv[2]);
                                time_tmp=mktime(tm_now);
                                tm_now=localtime(&time_tmp);
                                printf("%04d %02dn",tm_now->tm_year+1900,tm_now->tm_mon+1);
                                break;
                        case 'D':
                                time_tmp=time(NULL);
                                tm_now=localtime(&time_tmp);
                                tm_now->tm_mday=tm_now->tm_mday-atoi(argv[2]);
                                time_tmp=mktime(tm_now);
                                tm_now=localtime(&time_tmp);
                                printf("%04d %02d %02dn",tm_now->tm_year+1900,tm_now->tm_mon+1,tm_now->tm_mday
);
                                break;
                                        default:
                                time_tmp=time(NULL);
                                tm_now=localtime(&time_tmp);
                                tm_now->tm_mday=tm_now->tm_mday-atoi(argv[1]);
                                time_tmp=mktime(tm_now);
                                tm_now=localtime(&time_tmp);
                                printf("%02dn",tm_now->tm_mday);
                                break;
                }
                return 0;
        }
        else
        {
                return 1;
        }
}

eg:
./backdays D 3
2006 02 11

|
存在一个目录,查找其中是按照yyyymmdd格式命名的文件;取当前日期,比如是20060213,前半个月是20060128;删除小于20060128的文件。
请问,用shell脚本如何实现?

./backdays D 3 |while read year,month,day
do
   rm "DirPaht/*${yea}${month}${day}"
done

|
date=`/npkg03/bin/backdays D 1`
dt=`echo $date |awk '{print $1$2$3}'`

 rm "DirPaht/*${dt}*"


|
这一直是个问题,所以才有GNU date的功能增强。如果一定要用shell,那就是编程了,自己判断闰年、大小月等等。如果只是不想用C,用awk就可以。

|
得到半个月前时刻的“秒数”有两种方式:
NOW=`date +%s`;
let T1=$NOW-15*24*3600;
或者:
T1=`date -d '15 days ago' +%s`

得到特定日期的秒数:
date -d 20060101 +%s

然后简单计算一下就可以了

|
可以利于数据库来解决分析
getdate()
{
sqlplus userName/passWord@serverName  quit
!
}
getdate() |grep aaa |while read dt ,aaa
do
   echo "${dt}n"
done



    
 
 

您可能感兴趣的文章:

  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • 如何用shell实现向文件删除或添加一行信息
  • shell 删除目录下指定的文件?
  • bash shell 如何实现删除文件中的各行字符呢?
  • shell脚本里面,用什么指令删除字符串中子串
  • 在shell脚本中如何使用FTP一次删除远端的多个文件?
  • 在UNIX中,怎样写一个SHELL,删除目录下所有文件的前二行。
  • 请指点:用Shell编程完成删除7天前的日志文件
  • 请教一下,如何用shell 编程实现删除超过一定时间以前的文件?
  • 用shell编程,如何循环删除文件?
  • shell如何实现删除指定若干行?
  • linux的shell删除文件中100行的,每行的前6个字符的问题?
  • 在shell中如何删除一个文件的指定的行
  • 在shell中如何删除一个文件的指定几行
  • 用SHELL如何实现在指定的文件位置,删除或者增加一行
  • [请教]shell中删除指定行
  • 求一个shell脚本 统计文件数目并删除一些文件
  • 删除文件的shell脚本编写,条件内详
  • shell 删除空字符开头的行
  • 如何删除目录中文件名小于某个字符串的所有文件 shell
  • 请教给问题,给分哦!shell 中输入一个日期参数,得到该日期的星期。
  • 关于shell脚本中日期的日期的引用问题
  • 在shell中如何获取当前日期和时间
  • shell脚本获取30天前的日期
  • 怎么用shell编程--改变BIOS里面的日期和星期 急啊
  • redhat7.2下怎么在shell文件中以变动日期做为变量?急!!
  • shell程序里如何比较日期大小
  • 初学SHELL..请教一个日期的问题.
  • shell 指定的日期 计算该天时星期几
  • 请教各位,shell脚本获取当前日期是本年的第几周?
  • 如何用shell备份某一个目录中修改日期是当天的文件
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • 请问什么是shell编程?一般都用shell编程实现什么?
  • 请教一个shell编程的问题,就是如何在shell编程中读一个文件的内容?谢谢啦!
  • Linux下的编程指的就是Shell编程吗?
  • 那里有《shell编程》和关于curses编程的教程可以下载,请帮忙?
  • C编程与shell编程有什么区别,两者有没有从属关系?
  • Linux C编程一站式学习,高级shell Bash脚本编程指南,
  • shell 编程 执行shell新建多个终端 并执行程序
  • Linux命令、编辑器与Shell编程 和 UNIX SHELL范例精解(第4版) 区别大么?
  • Shell编程的,可以在shell中访问多行的属性吗?如:
  • 刚学Shell编程,问个关于Shell中if语句的问题
  • 如何学UNIX的SHELL编程
  • 请推荐基本shell编程书籍
  • 请大家推荐一本shell编程方面的书
  • 给我推荐点shell编程的学习资料。
  • 谁有linux shell编程方面比较好的语法资料哦?
  • 关于Shell编程???
  • 学好SHELL编程能从事什么职业?
  • 关于shell脚本编程
  • 关于shell编程的小问题
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3