Расщепление в Powershell - PullRequest
0 голосов
/ 03 мая 2018

Я хочу иметь возможность разделить некоторый текст из txtfile: Например:

Brackets#Release 1.11.6#Path-to-Brackets
Atom#v1.4#Path-to-Atom

Я просто хочу получить часть "Release 1.11.6" . Я делаю где-объект начинается с скобки, но я не знаю полный синтаксис. Вот мой код:

 "Get-Content -Path thisfile.txt | Where-Object{$_ < IM STUCK HERE > !

Ответы [ 2 ]

0 голосов
/ 03 мая 2018
$bracketsRelease = Get-Content -path thisfile.txt | foreach-object {

    if ( $_ -match 'Brackets#(Release [^#]+)#' )
    {
        $Matches[1]
    }

}

или

(select-string -Path file.txt -Pattern 'Brackets#(Release [^#]+)#').Matches[0].Groups[1].value
0 голосов
/ 03 мая 2018

Вы можете сделать это:

((Get-Content thisfile.txt | Where-Object { $_ -match '^Brackets' }) -Split '#')[1]

При этом используется оператор -match, чтобы отфильтровать любые строки, которые не начинаются с скобок (специальный символ регулярного выражения ^ указывает, что последующее должно быть в начале строки). Затем он использует оператор -Split для разбиения этих строк на #, а затем использует индекс массива [1] для получения второго элемента разбиения (массивы начинаются с 0).

Обратите внимание, что это вызовет ошибку, если разделение на # не вернет хотя бы два элемента, и предполагается, что текст, который вы хотите, всегда является вторым из этих элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...