[shell日期相关] 日期格式变换、生成带日期的文件名

在shell开发中,获取日期的方法

  • 获取当前日期:today=date +"%Y-%m-%d"
  • 获取昨天的日期:yesterday=date -d "-1 day" +"%Y-%m-%d"
  • 获取指定日期前N天的日期:date=date -d "$date -3 day" +"%Y-%m-%d"
    其中$date 表示指定的日期,-3表示3天之前,如果是正数,表示N天之后
  • 获取当前小时:
    time=date | awk '{print $4}' | awk -F':' '{print $1}'

日期格式变换

pay_from=20180316  # 起始日期
pay_end=20180330  # 结束日期
from_date=$(date -d ${pay_from} +'%Y-%m-%d')  # from_date=2018-03-16 
to_date=$(date -d ${pay_end} +'%Y-%m-%d')     # to_date=2018-03-30 

生成带日期的文件名

hive -e "select 'hello'" > t1`date`.txt
t1Fri Apr 13 13:24:47 CST 2018.txt

hive -e "select 'hello'" > t2_`date +%Y-%m-%d-%H`.txt
t2_2018-04-13-13.txt

hive -e "select 'hello'" > t2_`date +%Y%m%d%H`.txt  #加号前必须有空格
t2_2018041313.txt

hive -e "select 'helloworld'" > t3_`date +%y%m%d%H`.txt
t3_18041313.txt

# %Y%m%d%H  Y大写,年份格式有四位2018
# %y%m%d%H  y小写,年份格式只有后两位18

你可能感兴趣的:(Shell)