如何在unix中检查正确的月份顺序?

时间:2016-07-13 11:22:55

标签: bash unix awk sed

我正在编写一个代码,以便在日志文件中存在两次数据。我的输入将是

./filename Apr 10 16 02:07:20 Jul 11 16 11:07:30 

我将"Apr 10 16 02:07:20"存储在$StartTime变量中,"Jul 11 16 11:07:30"存储在$EndTime变量中,如下所示,

StartTime="$1 $2 $3 $4"
EndTime="$5 $6 $7 $8"

如果我的输入是./filename Jul 11 16 11:07:30 Apr 10 16 02:07:20,那么它应该显示一个错误,说StartTime不能大于EndTime。

我使用以下逻辑,

if [[ "$StartTime" > "$EndTime" ]] 
then
{
echo "Error: StartTime cannot be greater than EndTime"
exit 
}
fi

但按字母顺序排列需要数月,4月,8月,12月......考虑到8月比5月更大。如何用数字对月份进行排序?请帮助。

1 个答案:

答案 0 :(得分:1)

date

怎么样?
$ StartTime=$(date --date="$1 $2 $4 $3" +%s)
$ echo $StartTime
1460243240
$ EndTime=$(date --date="$5 $6 $8 $7" +%s)
$ echo $EndTime
1468224450
$ your_script_above.sh
$ echo $?
0

男人约会: - -     自1970-01-01 00:00:00 UTC以来的%s秒