![]() |
Реализация grep средствами powershell
У меня есть вот такой вывод одной утилиты
CSP (Type:80) v5.0.10003 KC3 Release Ver:5.0.11455 OS:Windows CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 9023212 GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider Container name: "Михеева Ольга Алупьевна 1114443106" Signature key is not available. Exchange key is available. HCRYPTKEY: 0x8b7999 Symmetric key is not available. UEC key is not available. Keys in container: exchange key Extensions: OID: 1.2.643.2.2.37.3.10 PrivKey: Not specified - 14.02.2023 13:31:19 (UTC) OID: 1.2.643.2.2.37.3.1 Certificates: 1: DName: E=uc_fk@roskazna.ru, S=г. Москва, INN=007710568760, OGRN=1047797019830, STREET="Большой Златоустински й переулок, д. 6, строение 1", L=Москва, C=RU, O=Федеральное казначейство, CN=Федеральное казначейство OID: 1.2.643.2.2.37.3.3 Certificates: 1: DName: E=dit@minsvyaz.ru, C=RU, S=77 Москва, L=г. Москва, STREET="улица Тверская, дом 7", O=Минкомсвязь Росс ии, OGRN=1047702026701, INN=007710474375, CN=Минкомсвязь России Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,029 sec [ErrorCode: 0x00000000] из которого мне нужно достать дату чтобы сравнить ее с текущей прибегая к сторонним утилитам я юзал grep где это решалось строкой: grep -Eo "[0-9]{2}\.[0-9]{2}\.[0-9]{4}" в powershell мне не хватает ключа -o чтобы выдернуть только ту часть строки, которая соответствует паттерну как это сделать? вот мой код
Код:
chcp 65001 вывод
Абрамова Юлия Ивановна 314122617 PrivKey: Not specified - 13.06.2023 14:57:04 (UTC) : 13.01.2023 14:32:54 ДЕНИНА ЛУЛУМБА ВАСИЛЬЕВНА 1213244259 PrivKey: Not specified - 19.03.2024 17:43:38 (UTC) : 13.01.2023 14:32:54 Астахова Марина Сергеевна 1114442618 PrivKey: Not specified - 14.02.2023 13:26:51 (UTC) : 13.01.2023 14:32:54 Данилова Хрыстина Викторовна 1114443106 PrivKey: Not specified - 14.02.2023 13:31:19 (UTC) : 13.01.2023 14:32:54 желаемый вывод
Абрамова Юлия Ивановна 314122617 13.06.2023 14:57:04 : 13.01.2023 14:32:54 ДЕНИНА ЛУЛУМБА ВАСИЛЬЕВНА 1213244259 19.03.2024 17:43:38 : 13.01.2023 14:32:54 Астахова Марина Сергеевна 1114442618 14.02.2023 13:26:51 : 13.01.2023 14:32:54 Данилова Хрыстина Викторовна 1114443106 14.02.2023 13:31:19 : 13.01.2023 14:32:54 Заранее спасибо |
Цитата:
Код:
$text = @" Цитата:
Код:
$text = @" |
Нет Криптопро под рукой, поэтому исходником выступает текст.
Код:
$t = get-date |
$ContainerDate у вас булев тип, поэтому сравнение дат не будет работать. Найденная подстрока лежит в $matches[0]
Причём надо проверять $ContainerDate на $true иначе уходить на следующую итерацию с continue, иначе в случае несовпадения будет проверяться последнее совпавшее. |
еще для этого есть select-string
https://learn.microsoft.com/en-us/po...powershell-7.2 вызывается так write-output $command_output | Select-String $fragment -Context $before,$after |
Цитата:
Готовый рабочий и безопасный скрипт удаления старых контейнеров
Код:
# Для powershell ise нужна смена кодировки |
Отлично! Если освоите Custom Objects, будет чудесно.
https://www.google.com/search?q=powe...+Custom+Object |
Цитата:
|
Полагаю, да, и в будущем очень пригодится.
Можно делать более наглядное и удобное представление данных (таблицы, например), которые потом, например, легко конвертируются в html-отчёты, Excel-документы и прочее. |
Тогда встретимся через пол года :yes:
|
nwss, вот, совсем другое дело :)
Только небольшое уточнение: Цитата:
Лучше завести для себя правило: сохранять скрипты в кодировке utf8 with BOM, для уменьшения проблем с кодировками в дальнейшем... Цитата:
|
Время: 09:37. |
Время: 09:37.
© OSzone.net 2001-