shell 实现N位自动补零和日期循环

用awk的printf就可以补位


# 仅适用于数字
 
printf "%04d\n" 86
 
echo 86|awk '{printf("%04d\n",$0)}'



下面是我实际应用中使用的一个脚本,目的是批量修改hdfs上的文件名,输入两个参数即可,就是开始时间和结束时间,然后用whil去循环。


#example------nohup sh hdfs_rename.sh 20160522 20160530 >>logrename 2>&1 &

datebeg=$1
dateend=$2

beg_s=`date -d "$datebeg" +%Y%m%d`
end_s=`date -d "$dateend" +%Y%m%d`


while [ "$beg_s" -le "$end_s" ]  
do
date=${beg_s}
for i in `seq 99`
do
num1=`echo ${i}|awk '{printf("%06d\n",$0)}'`
num2=`echo ${i}|awk '{printf("%02d\n",$0)}'`
echo ${date}
echo ${num1}
echo ${num2}
hadoop fs -mv /xtrader/${date}/${num1}_* /xtrader/${date}/xtrader_UserInfo_${date}_${num2}.gz
done
echo ${date}
beg_s=`date -d"${beg_s}+1 day" +%Y%m%d`

done


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值