awk анализировать мультилинию, сопоставлять с файлом и присваивать значения из проанализированного многострочного вывода в файл - PullRequest
0 голосов
/ 01 мая 2020

Здравствуйте, у меня есть выходные данные команды, которые мне нужно проанализировать так, чтобы они сравнивались / сравнивались напрямую с file1, который contain columns on lines along with their values, совпадение выполняется только на основе mergeID,nameID,name,indexID,delimID,, если любая строка содержит diff. значения в столбцах и, если совпадений нет, они просто игнорируются и выводятся как file2 (при следующем запуске команды, если есть совпадение в файле1, генерируется файл3, после следующего запуска и следующего файла4, файл5, файл6, ..)

Результат команды:

COMMAND RESULT:
An Result of block 5
  mergeID=88
  nameID=asdf4666
  part=no
  name=trans
  definitionID=a99s88eAAfx
  randomnumber=9d7sadf797asdf798
  mixture=no
  defect=no
  linenumber=25
  vers=777.5
  Result of index lines:
    An Result of block lines
      indexID=55
      listed=no
      delimID=1X-8
      blockName=blck55
      row=1
      mode=2
      opted=no
      Result of 1025 NextLineID items:
        An index of NextLineID
          id=114
        An index of NextLineID
          id=115
        An index of NextLineID
          id=116
        An index of NextLineID
          id=124
        An index of NextLineID
          id=132
        An index of NextLineID
          id=155
        An index of NextLineID
          id=165
        An index of NextLineID
          id=166
        An index of NextLineID
          id=171
        An index of NextLineID
          id=172
        <.......this will continue / output shrinked> 

cat file1

mergeID=22 nameID=as222765 name=unspec indexID=55 delimID=1X-8 fixedID= iter=55:LL:88:21
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID= iter=55:LL:88:62
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID= iter=2a:aa:22:11
mergeID=88 nameID=asdf1116 name=trans indexID=11 delimID=1X-X fixedID= iter=55:LL:88:62
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID= iter=55:xx:11:Ae
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID= iter=55:xx:11:Ac

выходной файл file2 будет выглядеть так: cat file2

start of matched lines and columns
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID=114 iter=55:LL:88:62
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID=115 iter=2a:aa:22:11
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID=116 iter=55:xx:11:Ae
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID=124 iter=55:xx:11:Ac
end of matched lines and columns

например. при следующем запуске, если правильная команда будет выполнена и будет соответствовать, например. 1-я строка из file1

mergeID=22 nameID=as222765 name=unspec indexID=55 delimID=1X-8 fixedID= iter=55:LL:88:21
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID= iter=55:LL:88:62
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID= iter=2a:aa:22:11
mergeID=88 nameID=asdf1116 name=trans indexID=11 delimID=1X-X fixedID= iter=55:LL:88:62
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID= iter=55:xx:11:Ae
mergeID=88 nameID=asdf4666 name=trans indexID=55 delimID=1X-8 fixedID= iter=55:xx:11:Ac

file3 будет выглядеть так:

start of matched lines and columns
mergeID=22 nameID=as222765 name=unspec indexID=55 delimID=1X-8 fixedID=150 iter=55:LL:88:21
end of matched lines and columns

Я не знаю, как это сделать в awk, спасибо за помощь в решении этой проблемы

...