GREP或AWK复杂模式匹配(Linux)

时间:2018-08-27 05:49:49

标签: linux awk grep mediainfo

所以我有一个来自'mediinfo VIDEO.mkv'的文本输出:

General
Unique ID                                : 190778803810831492312123193779943 (0x8F265C1B107A4D595F723237C370C7074FB7)
Complete name                            : VIDEO.mkv
Format                                   : Matroska
Format version                           : Version 4 / Version 2

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main@L3@Main
Codec ID                                 : V_MPEGH/ISO/HEVC

我需要GREP或AWK格式:HEVC波纹管视频。我不确定如何继续进行正则表达式“格式”操作,但随后又返回多行(Matroska和HEVC)。我还没有找到任何方便的提示。

想法?

3 个答案:

答案 0 :(得分:0)

  • 如果已修复“ Matroska”,则可以通过mediinfo VIDEO.mkv来完成。 grep“格式” test.fi | grep -v“ Matroska”
  • 如果输出格式是固定的,则可以通过mediinfo VIDEO.mkv来完成。 grep“格式” test.fi |尾巴-n1

grep -v将忽略匹配的行,tail将在最后一行显示指定的o行数。

答案 1 :(得分:0)

mediinfo VIDEO.mkv | awk -v RS= '/^Video/{print $7}' 
HEVC

您可以在awk设置为空白的情况下使用RS并打印所需的列号。

答案 2 :(得分:-1)

显然有很多方法可以解决此问题,但是sed在这里似乎很自然:

$ sed -n '/Video/,$ { s/Format *: //p }' file
HEVC