[Shell] Shell 循环取出目录中的文件及日期的用法

1  for errorlog in `ls ${log_source_directory} | grep ${today}`          

 

2  do

3      if [ ! -z ${errorlog} ] && [ -s ${log_source_directory}/${errorlog} ] ; then

4            log_time=$(echo ${errorlog} | sed 's/.*_2010//; s//-//; s//-//; s//-//; s/_.*//')

5            if [ ${time} -lt ${log_time} ]; then

6                  cp ${log_source_directory}/${errorlog} ${log_target_derectory}/${errorlog}.launcher

7                  echo "Copy ${errorlog} to ${log_target_derectory}"

8            fi

9      else

10          echo "No errer log exist."

11    fi

12 done

 

 

 

1  得到${log_source_directory} 目录中所有这样的文件,其文件名中含有${today} 的文件。其中errorlog 表示每一个这样的文件。

3  判断条件是否满足,第一个条件${errorlog}不为空, 第二个条件 ${log_source_directory}/${errorlog} 文件存在

4  使用sed 替换字符串

5  判断条件是否满足,${time} 小与 ${log_time}。

6  拷贝文件

注意:' ` " 的区别。` 键是"Tab" 上面的那个键。用来表示执行命令的。

time=`date +%Y%m%d%H%M%S`    年月日小时分秒

time=`date +%Y_%m_%d_%H_%M_%S`    年_月_日_小时_分_秒

 

上面的有点笨了,可以参考这个方法:

for myfile in /etc/r*
do

     if [ -d "$myfile" ];then
          echo "$myfile (dir)"
     else
          echo "$myfile"
     fi
done
支持同配符。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值