Bashで文字列に出会った後に次の行を抽出する方法

Bashで文字列に出会った後に次の行を抽出する方法

たとえば、テキストファイル名があります。

> "result_merge_file.txt"

このファイルに結合して保存されている10個の異なるファイルのログを保存します。

今私は努力しています。

一部を抽出する

マージされたログファイル「result_merge_file.txt」から別のファイルに送信します。

「抽出された結果。txt」

> extract a certain section looks like following

PerformanceINFO                                             
            UVM_INFO_PERF ****NIB-FIB Axis Interface Per-packet Performance Report****                                             
             interface_name            : NIB-FIB,                                             
             date                      : NAN,                                             
             interface_description     : injection,                                             
             port_number               : 0,                                             
             clock_period (ps)         : 4850,                                             
             number_of_diff_packets    : 10,                                             
             payload_sizes (bytes)     : {312, 1100, 1132, 1404, 1666, 3100, 3610, 4998, 7922, 8544, }                                             
             packet_datarate (bits/clk): {116, 127, 125, 120, 119, 121, 124, 121, 124, 121, }
`

今まで試したことは

grep -A3 -P '^PerformanceINFO$' temp_log.txt > result_after_Extraction.txt

しかし、空の結果を提供します

ベストアンサー1

PerformanceINFOはINFOで終わらず、後ろにスペースがあります。

したがって、この$フラグを削除するか

grep -A3 '^PerformanceINFO\s\+$' 

おすすめ記事