Ниже приведены примеры файлов ).
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.
Мне очень жаль, я недостаточно знаком с регулярным выражением, поэтому я спрашиваю
Предполагая, что вы предоставили содержимое журнала в файле 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 ?] Могут содержать, если вам нужно что-то более конкретное.