私はひもを持っています
set text {tools show stats
Resource Manager info at 023 h 06/01/20 09:14:16.105:
Hardware Resource Usage #1, abc iom-32-100g, Pipe #0:
| Total | Allocated | Free
-------------------------------+-----------+-----------+------------
stat vale abc/ghj(0) | 256| 0| 256
stat vale abc/ghj(1) | 256| 0| 256
new Statistic | Count
---------------------------------+-------------
first | 0
seconds| 0
third info | Count
fourth| 0
fifth | 125
Forwarding Table Statistics | Used / Free / Max / Reject
---------------------------------+-----------------------------------
third stat Entries | 2 / 36856 / 36864
Important | 1 / 13133 / 13136 / 0
fifth entry < 56 | 1 / 5743 / 5744 / 0
sixth entry > 5 | 0 / 112 / 112 / 0
Service manager resources
-------------------------
Total count: 2/ 3072
Total info: 2/ 401
ABC Group Statistics | Used / Free / Max
---------------------------------+-----------------------
Entries | 0 / 256 / 256
}
抽出する必要があります
1. Important | 1 / 13133 / 13136 / 0
2. fifth entry < 56 | 1 / 5743 / 5744 / 0
両方を別々に行うことができます私は同じものを抽出するためにtclで次の正規表現を使用しています
1. regexp -nocase -line -- {^Important.*} $text match
2. regexp -nocase -line -- {^fifth entry \< 56.*} $text match
それは機能していません、誰かがここで助けることができますか?
一致する前に空白があり、行がインデントされているため、空白と一致する必要が[[:space:]]*
あります。たとえば、通常のスペースとタブの両方に一致します。
または、^
行の先頭で一致させる必要がない場合は削除します。^
行の先頭の位置に一致します。
一致から「除外」するには、丸括弧のペアを使用して、最初の空白なしで必要なテキストをキャプチャします。
あなたは使用することができます
regexp -nocase -line -- {^[[:space:]]*(Important.*)} $text - match1
regexp -nocase -line -- {^[[:space:]]*(fifth entry < 56.*)} $text - match2
<
リテラル<
文字と一致させたい場合は、エスケープする必要がないことに注意してください。
詳細
^
-行の開始(ここでは、による-line
)[[:space:]]*
-0つ以上の空白(Important.*)
-グループ1のキャプチャ:Important
および改行文字以外の0個以上の文字。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加