将时间拆分为小时值、分钟值和秒

Split a time into hours value, minutes value, and seconds

我有一个包含 00:00:46 的文件,我需要使用 sed 或 Awk 使 00、00 和 46 成为它们自己的变量,以便与 date +"%H"date +"%M"date +"%S"。我该怎么做?

(我正在使用对话框实用程序的时间框显示,它将数据发送到 tmp 文件以读取为:00:00:00(不是零)并且我发现没有办法分离这些输入,除了 sed.)

您可以使用 shell 的内置令牌拆分。设置 IFS 为您想要的分隔符,然后 set $value$value 中的字符串拆分为 </code>、<code>

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

# Reap
echo hours: 
echo minutes: 
echo seconds: 

这是一个awk

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

echo "$second"
46