Ale*_*Flo 3 regex linux awk sed
我有这个字符串:
Stream #0:0: Video: vp6f, yuv420p, 852x478, 1638 kb/s, 25 tbr, 1k tbn, 1k tbc
Run Code Online (Sandbox Code Playgroud)
我想从中提取25出来.我用:
sed -r 's/.+([0-9]{2} tbr).+/\1/'
Run Code Online (Sandbox Code Playgroud)
它返回我需要的东西.
无论如何,如果相反我会遇到一个字符串
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
Run Code Online (Sandbox Code Playgroud)
它不会再回归我需要的了.
我尝试了不同的替代方法,因此tbr在两种情况下都返回值,但找不到正确的表达式.
Chr*_*our 13
这是一种方法awk:
$ awk '/tbr/{print $1}' RS=, file
25
29.97
Run Code Online (Sandbox Code Playgroud)
说明:
默认情况下,awk将每行作为一个记录,通过设置RS到,我们设定的记录分隔符为逗号.该脚本查看每条记录并打印匹配的任何记录的第一个字段tbr.
一种GNU grep使用积极前瞻的方法:
$ grep -Po '[0-9.]+(?= tbr)' file
25
29.97
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9970 次 |
| 最近记录: |