获取特定月份和年份的最后一个星期六日期

时间:2014-05-08 21:04:23

标签: linux date awk cut

我收到SOURCE_FILE_042014.CSV格式的源文件,其中包含2014年4月份的数据。由此我需要获得该月的最后一个星期六并在我们的系统中加载该日期的数据。例如 - 文件SOURCE_FILE_042014.CSV的数据应为04262014的日期。在使用cut命令并在 here 的帮助下执行子字符串后,我只得到26的日期。如何显示完整的工作日期?

1 个答案:

答案 0 :(得分:1)

您需要从文件名中提取年份和月份才能要求上周六。所以,只需回顾一天,然后用你已提取的年份和月份将其复原:

#! /bin/bash
filename=SOURCE_FILE_042014.CSV
date=${filename##*_}
date=${date%.CSV}

month=${date:0:2}
year=${date:2}

day=$(cal $month $year | awk 'NF>6{a=$7} END{print a}')

echo $month$day$year