Сочетание сложных шаблонов GREP или AWK (linux) - PullRequest
0 голосов
/ 27 августа 2018

Итак, у меня есть текстовый вывод ниже из '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 голосов
/ 27 августа 2018
  • Если «Матроска» исправлена, вы можете сделать это по mediinfo VIDEO.mkv |grep "Формат" test.fi |grep -v "Matroska"
  • Если формат вывода фиксированный, то вы делаете это с помощью mediinfo VIDEO.mkv |grep "Формат" test.fi |tail -n1

grep -v будет игнорировать совпадающую строку, tail будет печатать указанное число o строк из последней.

0 голосов
/ 27 августа 2018
mediinfo VIDEO.mkv | awk -v RS= '/^Video/{print $7}' 
HEVC

Вы можете использовать awk с RS, установленным в пустое значение, и распечатать желаемый номер столбца.

0 голосов
/ 27 августа 2018

Очевидно, есть много способов решить эту проблему, но sed кажется естественным здесь:

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