如何在shell脚本中更改日期格式

时间:2014-05-09 06:24:29

标签: linux shell

shell脚本中使用了两种日期格式:

Format 1. 01-01-2014
Format 2. 2014-01-01

情境:
格式1是目录,格式2是文件名 我试图使用shell脚本解析格式2文件,但卡在一点 我通过定义数组中的所有值来管理对格式为1的目录的调用,现在对于每个数组值我正在解析格式为2的所需文件。
现在管理格式2的数组 问题可以解决,如果,我可以像PHP一样进行日期转换。

$date='01-01-2014'
$filetosearch=date('Y-m-d',strtotime($date))

通过以上两个步骤,我可以从我在数组中定义的两个不同的日期格式获得。 所以这种事情发生在贝壳中或不发生。

1 个答案:

答案 0 :(得分:2)

一种解决方案,使用awk

date='31-01-2014'
filetosearch=$(echo "$date" | awk -F- '{print $3"-"$2"-"$1}')

并使用sed

filetosearch=$(echo "$date" | sed 's/\(..\)-\(..\)-\(....\)/\3-\2-\1/')

以上假设date采用欧洲(日 - 月 - 年)格式。如果您的日期是美国格式,那么只需要进行一些小改动:

date='01-31-2014' 
filetosearch=$(echo "$date" | awk -F- '{print $3"-"$1"-"$2}')

filetosearch=$(echo "$date" | sed 's/\(..\)-\(..\)-\(....\)/\3-\1-\2/')