我目前正在尝试将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命令,我想知道是否有人能够帮助我解决原因。
答案 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)