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))
通过以上两个步骤,我可以从我在数组中定义的两个不同的日期格式获得。 所以这种事情发生在贝壳中或不发生。
答案 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/')