将时间分为小时值,分钟值和秒

时间:2015-02-13 04:48:18

标签: shell unix awk sed unix-timestamp

我有一个包含00:00:46的文件,我需要使用sed或Awk将00,00和46自己的变量与date +"%H"进行比较,{{1 }和date +"%M"。我该怎么做?

(我正在使用对话框实用程序的时间框显示,将数据发送到tmp文件,读取为:00:00:00(不是零),我发现除了{{{}之外我无法分离这些输入1}}。)

2 个答案:

答案 0 :(得分:2)

您可以使用shell的内置令牌拆分。将IFS设置为您想要的分隔符,然后set $value$value中的字符串拆分为$1$2等。

# Split
value='00:45:33'
oldIFS=$IFS
IFS=':'
set -- $value
IFS=$oldIFS

# Reap
echo hours: $1
echo minutes: $2
echo seconds: $3

答案 1 :(得分:0)

这是awk

hour=$(echo "00:00:46" | awk -F: '{print $1}')
minutes=$(echo "00:00:46" | awk -F: '{print $2}')
second=$(echo "00:00:46" | awk -F: '{print $3}')

echo "$second"
46