当前位置:  开发笔记 > 编程语言 > 正文

bash脚本无法读取第一行

如何解决《bash脚本无法读取第一行》经验,为你挑选了1个好方法。

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

输入文件如下所示:

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

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



1> P.P...:

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

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

您看到的行为的原因是您没有传递line给awk.所以读取循环读取第一行,并在循环中通过awk休息,因为awk 从循环中获取stdin.因此,你没有看到第一行.

如果它仍然是不明确的,只是添加echo "Hello" awk你的循环中调用,看看它是如何被多次印刷:)

你可能打算这样做:

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

但这只是不必要的.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有