Регулярное выражение для PowerShell [закрыто]

Ниже приведены примеры файлов ).

Symmetrix logical device count=13
CLARiiON logical device count=0
Invista logical device count=0
Generic logical device count=0
==============================================================================
----- 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



Port Attributes for 10:00:00:00:c9:69:5b:70

Node WWN            : 20 00 00 00 c9 69 5b 70 
Port WWN            : 10 00 00 00 c9 69 5b 70 
Port Symname        : Emulex PPN-10:00:00:00:C9:69:5B:70
Port FCID           : 78004A
Port Type           : Fabric
Port State          : Operational
Port Service Type   : 8
Port Supported 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 
Port Active 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 
Port Supported Speed: 1 2 4 GBit/sec.
Port Speed          : 1 GBit/sec.
Max Frame Size      : 2048
OS Device Name      : \\.\Scsi2:
Num Discovered Ports: 2
Fabric Name         : 20 02 00 0d ec f1 00 c1 


Port Attributes for 10:00:00:00:c9:69:37:63

Node WWN            : 20 00 00 00 c9 69 37 63 
Port WWN            : 10 00 00 00 c9 69 37 63 
Port Symname        : Emulex PPN-10:00:00:00:C9:69:37:63
Port FCID           : 780098
Port Type           : Fabric
Port State          : Operational
Port Service Type   : 8
Port Supported 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 
Port Active 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 
Port Supported Speed: 1 2 4 GBit/sec.
Port Speed          : 1 GBit/sec.
Max Frame Size      : 2048
OS Device Name      : \\.\Scsi3:
Num Discovered Ports: 2
Fabric Name         : 20 02 00 0d ec f0 b5 81 

Мне нужно выбрать только нижнюю часть в PowerShell. Как я могу этого добиться? Было бы здорово создать объект из этого, но разделения было бы достаточно

==============================================================================
----- 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

Большое спасибо

PS.
Я пытался использовать приведенную ниже строку кода, но она возвращает не только необходимый блок:

[regex]::match($file,'(={3,}).+(?=Port\sAttributes\sfor.+)',"singleline").value

PPS.
Мне очень жаль, я недостаточно знаком с регулярным выражением, поэтому я спрашиваю

-1
задан 2 April 2013 в 13:44
1 ответ

Предполагая, что вы предоставили содержимое журнала в файле 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 порт2 \ путь0 строки начинаются с табуляции или определенного количества пробелов, мы можем переписать приведенное выше, чтобы использовать это вместо этого. Вам нужно будет уточнить в своем вопросе, какие возможные значения для строк 9-10 [- n ?] Могут содержать, если вам нужно что-то более конкретное.

3
ответ дан 5 December 2019 в 19:16

Теги

Похожие вопросы