gpt4 book ai didi

regex - 使用 awk/sed 从一行中提取数字

转载 作者:IT王子 更新时间:2023-10-29 00:47:38 26 4
gpt4 key购买 nike

我有这个字符串:

Stream #0:0: Video: vp6f, yuv420p, 852x478, 1638 kb/s, 25 tbr, 1k tbn, 1k tbc

我想从中提取25。我使用:

sed -r 's/.+([0-9]{2} tbr).+/\1/'

它返回我需要的东西。

无论如何,如果我遇到像

这样的字符串
Stream #0:0(eng): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 11981 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc

它不会再返回我需要的东西。

我尝试了不同的替代方法,因此在这两种情况下都返回了 tbr 的值,但找不到正确的表达式。

最佳答案

这是 awk 的一种方法:

$ awk '/tbr/{print $1}' RS=, file
25
29.97

解释:

默认 awk 将每一行视为一条记录,通过将 RS 设置为 我们将记录分隔符设置为逗号。该脚本查看每条记录并打印与 tbr 匹配的任何记录的第一个字段。


一个使用 positive lookaheadGNU grep 方法:

$ grep -Po '[0-9.]+(?= tbr)' file
25
29.97

关于regex - 使用 awk/sed 从一行中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16038554/

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