Как выбрать конкретную строку из вывода в Powershell

Вопрос:

Когда я хочу выбрать конкретный текст из вывода в powershell, я мог бы использовать

select-string -Pattern "whatever:"

И он распечатает любой столбец. Но когда я пытаюсь сделать то же самое на этом выходе, он вместо этого выводит строку вместо столбца.

Поэтому я делаю так:

> /c0 show | select-string -Pattern "EID:Slt"

И вместо того, чтобы показывать столбец, это показывает:

> EID:Slt DID State DG Size Intf Med SED PI SeSz Model
> Sp

Единственный способ, которым я мог понять, – заменить всех персонажей пустым пространством, но это как-то грязно, чтобы сделать это, кто-нибудь еще может помочь с вводом?

Как я пытаюсь заставить его отображать выходной текст: 32: 1, 32: 2, 32: 3, […]

Controller = 0
Status = Success
Description = Show Drive Information Succeeded.


Drive Information :
=================

--------------------------------------------------------------------------
EID:Slt DID State DG     Size Intf Med SED PI SeSz Model               Sp
--------------------------------------------------------------------------
32:0      0 Onln   0 3.637 TB SATA HDD N   N  512B ST4000NM0033-9ZM170 U
32:1      1 Onln   1 3.637 TB SATA HDD N   N  512B ST4000NM0033-9ZM170 U
32:2      2 Onln   1 3.637 TB SATA HDD N   N  512B ST4000NM0033-9ZM170 U
32:3      3 Onln   1 3.637 TB SATA HDD N   N  512B ST4000NM0033-9ZM170 U
32:4      4 Onln   1 3.637 TB SATA HDD N   N  512B ST4000NM0033-9ZM170 U
32:5      5 Onln   1 3.637 TB SATA HDD N   N  512B ST4000NM0033-9ZM170 U
32:6      6 Onln   1 3.637 TB SATA HDD N   N  512B ST4000NM0033-9ZM170 U
32:7      7 Onln   1 3.637 TB SATA HDD N   N  512B ST4000NM0033-9ZM170 U
--------------------------------------------------------------------------

Лучший ответ:

Не могли бы вы просто соответствовать шаблону данных в нужном столбце? Первый столбец всегда находится в начале строки, имеет две цифры, за которыми следует двоеточие и одна цифра. Вы можете извлечь их из этого:

Select-String -Pattern "^\d{2}:\d" -AllMatches | % { $_.Matches.Value }

Чтобы получить данные из всей таблицы с именами свойств из строки заголовка, лучше проанализировать их как поля фиксированной длины. Но вышеуказанного должно быть достаточно, если этот столбец – это все, что вам нужно.

Оцените статью
TechArks.Ru
Добавить комментарий