Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

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

подробнее

Впрочем, точной копией grep это всё равно не будет, так что я предпочитаю еще более короткий вариант:

New-Alias ss Select-String

Ну и дальше анализируем файлы:

Select-String 3389 C:WindowsSystem32driversetcservices

Эта команда вернёт две строчки, в следующем формате: «имя_файла:номер_строки:текст».

Если же у вас задача получить только текст, – не надо пытаться парсить эти строки! Командлет Select-String тоже возвращает объекты, и достаточно лишь выбрать нужное свойство, в данном случае это Line.

ss 3389 C:WindowsSystem32driversetcservices |%{$_.Line}

Тут я использовал % – это псевдоним для командлета ForEach-Object. И для каждого объекта получаем его свойство Line.

Я показал лишь маленькую толику возможностей Select-String. Этот командлет работает с регулярными выражениями и может обрабатывать несколько файлов сразу. Можно, например, перенаправить на него вывод команды Dir:

dir c:windows*.log | Select-String "Error"

Раз уж заговорили о регулярных выражениях, как еще можно с ними работать?

Следующий абзац для тех, кто пока не знаком с регулярными выражениями. Вы наверняка не раз использовали маски «*» или «?» для обозначения нескольких похожих имен файлов и других подобных задач в командной строке. Регулярные выражения – это, можно сказать, продолжение идеи. Хотя их синтаксис гораздо сложнее, взамен они позволяют описывать практически любые условия, вытаскивать из строк необходимые подстроки и еще много полезных вещей. Подробно на синтаксисе я останавливаться не буду, даже его краткий обзор – это тема для отдельной статьи.

Кроме командлета Select-String, нам доступен еще оператор -match. Он позволяет проверить – подпадает ли строка под регулярное выражение и возвращает соответственно $True или $False в качестве результата.

Например, следующая команда вернёт $True.

"xaegr@yandex.ru" -match "S+@S+"

На всякий случай поясню: «S+» означает «любой символ, кроме пробела («S») в количестве от 1 и более («+»)». Ну а символ @ подразумевает сам себя.

Конечно, можно использовать еще и «группы захвата», чтобы разбивать строку на компоненты. Эти группы создаются путем помещения отдельных элементов регулярного выражения в круглые скобки. После выполнения оператора -match группы помещаются в специальную переменную $matches.

if ("xaegr@yandex.ru" -match "(S+)@(S+)") {$matches[2]}


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2016 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100