gpt4 book ai didi

shell - 覆盖匹配的行

转载 作者:行者123 更新时间:2023-12-04 23:00:16 24 4
gpt4 key购买 nike

当我将 ffmpeg 的输出打印到文件时,我得到如下信息:

[...]
frame= 28 fps=0.0 q=-0.0 size=N/A time=00:00:01.16 bitrate=N/A speed=2.31x
frame= 55 fps= 54 q=-0.0 size=N/A time=00:00:02.24 bitrate=N/A speed= 2.2x
frame= 84 fps= 55 q=-0.0 size=N/A time=00:00:03.40 bitrate=N/A speed=2.22x
frame= 112 fps= 54 q=-0.0 size=N/A time=00:00:04.52 bitrate=N/A speed=2.17x
[...]

现在我希望所有与 frame=* 匹配的行被替换,只有最后一行被打印到文本文件中(实时)。

这可能吗?

目前我有这条线:
ffmpeg -v info -i input.ext -f null 2>&1 | awk '/frame=/{gsub(/.*/, $0)};{print}'
它几乎可以工作,除了所有包含 frame=* 的行是空的。

最佳答案

您可以从 awk 中截断文件并每行写入一次,如下所示:

awk '/frame=/ { close("file"); print > "file" }'

当您使用 >在 awk 中,它会在写入文件之前打开并截断文件。附加到同一文件的后续写入。如果您每次都关闭文件,那么下次写入时它总是会截断它。

关于shell - 覆盖匹配的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35149359/

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