gpt4 book ai didi

bash 脚本无法读取第一行

转载 作者:行者123 更新时间:2023-11-29 09:08:07 25 4
gpt4 key购买 nike

我有一个脚本可以将时间戳转换为秒数,这样我最终就可以计算出平均值。我注意到输出行数不等于输入行数。事实上,它似乎并没有阅读第一行。我简化了代码来检查它,但每次都是一样的。

输入文件如下所示:

00:00:01
00:00:02
00:00:03

输出如下:

00 00 02
00 00 03

这是脚本:

#!/bin/bash

while read line
do
awk -F: '{ print $1, $2, $3 }' > /home/time.log

done < /home/timestamp.log

我确定这是愚蠢的东西,但我看不到它!

最佳答案

你不需要循环。你可以简单地使用 awk:

awk -F: '{ print $1, $2, $3 }' /home/timestamp.log > /home/time.log

您看到的行为的原因是您没有将 line 传递给 awk。因此,第一行由循环读取 read 并由循环内的 awk 休息,因为 awk 从循环中获取它 stdin 。因此,您看不到第一行。

如果还不清楚,只需在循环内 awk 调用之后添加一个 echo "Hello" 并查看它执行了多少次打印:)

您可能打算这样做:

echo $line | awk -F: '{ print $1, $2, $3 }' > /home/time.log

但这只是不必要的。

关于bash 脚本无法读取第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34341039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com