将GMT时间转换为Epoch脚本

时间:2014-01-14 13:24:04

标签: linux shell unix unix-timestamp

我目前正在尝试将GMT时间转换为Unix Epoch时间。整个脚本读入一个CSV文件,该文件有一个时间戳,将其转换,然后将Epoch时间作为新变量附加到行尾。

我查了很多帖子并在DATE http://www.linuxmanpages.com/man1/date.1.php阅读了网页,并认为这样可行。

#!/bin/bash 
OLDIFS=$IFS 
IFS=","
cat test.csv | while read Host AName Resource MName TimeStamp Integer_Value; 
do 

Epoch=date -d "$TimeStamp" +%s

echo "Host: $Host, Name: $AName, Resource: $Resourse, MName: $MName, TimeStamp: $TimeStamp, Integer_Value: $Integer_Value, Epoch: $Epoch";



done

当通过脚本运行时,它表示找不到-d命令,我想知道是否有人能够帮助我解决原因。

2 个答案:

答案 0 :(得分:2)

要将命令的值存储到变量中,请使用var=$(command)语法。在你的情况下:

Epoch=$(date -d "$TimeStamp" +%s)

此外,您的cat file | while read...语法可以简化为while do ... done < file

IFS="," while read Host AName Resource MName TimeStamp Integer_Value; 
do 
...
done < test.csv

答案 1 :(得分:2)

你必须写

Epoch=`date -d "$TimeStamp" +%s`

Epoch=$(date -d "$TimeStamp" +%s)