Powershell
powershell 的一些正則表達式
我有以下範例文件。
Symmetrix 邏輯設備計數 = 13 CLARiiON 邏輯設備計數=0 Invista 邏輯設備計數=0 通用邏輯設備計數=0 ============================================================================== ----- 主機匯流排適配器 --------- ------ I/O 路徑 ----- ------ 統計資訊 ------ ### HW 路徑摘要 Total Dead IO/Sec Q-IOs Errors ============================================================================== 2 埠 2\path0 已降級 13 3 - 0 3 3 埠 3\path0 已降級 13 3 - 0 3 10:00:00:00:c9:69:5b:70 的埠屬性 節點 WWN:20 00 00 00 c9 69 5b 70 埠 WWN:10 00 00 00 c9 69 5b 70 埠符號名:Emulex PPN-10:00:00:00:C9:69:5B:70 FCID 埠:78004A 埠類型:織物 港口國:運營 港口服務類型:8 支持的埠 FC4:00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 埠活動 FC4:00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 埠支持的速度:1 2 4 GBit/sec。 埠速度:1 GBit/sec。 最大幀尺寸:2048 作業系統設備名稱:\\.\Scsi2: 發現埠數:2 面料名稱:20 02 00 0d ec f1 00 c1 10:00:00:00:c9:69:37:63 的埠屬性 節點 WWN:20 00 00 00 c9 69 37 63 埠 WWN:10 00 00 00 c9 69 37 63 埠符號名:Emulex PPN-10:00:00:00:C9:69:37:63 FCID 埠:780098 埠類型:織物 港口國:運營 港口服務類型:8 支持的埠 FC4:00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 埠活動 FC4:00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 埠支持的速度:1 2 4 GBit/sec。 埠速度:1 GBit/sec。 最大幀尺寸:2048 作業系統設備名稱:\\.\Scsi3: 發現埠數:2 面料名稱:20 02 00 0d ec f0 b5 81
我只需要在 powershell 中選擇以下部分。我怎樣才能做到這一點?將對像做成這樣會很棒,但拆分就足夠了
============================================================================== ----- 主機匯流排適配器 --------- ------ I/O 路徑 ----- ------ 統計資訊 ------ ### HW 路徑摘要 Total Dead IO/Sec Q-IOs Errors ============================================================================== 2 埠 2\path0 已降級 13 3 - 0 3 3 埠 3\path0 已降級 13 3 - 0 3
非常感謝
PS。
我嘗試使用下面的程式碼行,但它不僅返回所需的塊:
[regex]::match($file,'(={3,}).+(?=Port\sAttributes\sfor.+)',"singleline").value
聚苯乙烯。
我真的很抱歉,我對正則表達式不夠熟悉,這就是我問的原因
假設您在文件中提供了日誌內容
hba.log
,以下內容將返回以“=”、“-”、“#”中的任何一個開頭的所有行,或者包含 1 個或多個空白字元的行,後跟一個數字,然後由一個空格字元,後跟“埠”:Get-Content hba.log | Where-Object { $_ -match "^[=#-]|\s{1,}\d\sport" }
在這裡測試返回:
============================================================================== ----- Host Bus Adapters --------- ------ I/O Paths ----- ------ Stats ------ ### HW Path Summary Total Dead IO/Sec Q-IOs Errors ============================================================================== 2 port2\path0 degraded 13 3 - 0 3 3 port3\path0 degraded 13 3 - 0 3
如果
2 port2\path0
行以製表符或特定數量的空格開頭,我們可以重寫上面的程式碼來使用它。如果您需要更具體的內容,您需要在問題中澄清第 9-10[- n ?]行的可能值可能包含哪些內容。