Пропуск каждой 1 строки с помощью powershell - PullRequest
0 голосов
/ 04 июля 2018

Я хочу написать скрипт, который бы пропускал 1 строку каждый раз.

Мой текстовый файл выглядит следующим образом:

Java 8 update
{243453-4544-34534-6565-7676772345}
Java 7 update
{23444-554-565767-435234-5426564647}

Я хочу написать скрипт PowerShell, который должен пропускать строку.

Ожидаемый результат:

{243453-4544-34534-6565-7676772345}
{23444-554-565767-435234-5426564647}

Это пример текстового файла, но у меня есть 200 строк текстового файла в том же формате (1 строка и следующая строка - код продукта).

Пожалуйста, помогите в этом.

Ответы [ 4 ]

0 голосов
/ 05 июля 2018

Есть множество способов. Не Java работает, если всегда Java. Вы можете ввести оператор if в свой цикл, проверяя остаток переменной.

$check=1
Foreach($line in (gc file.tx)){
   If (($check % 2) -eq 0){
      Do commands
   }
   $check = $check + 1
}

Также изменение -eq 0 на 1 вернет противоположные строки

0 голосов
/ 04 июля 2018

Вы можете попробовать получить все строки, которые не содержат 'java':

Get-Content .\data.txt | 
    Where-Object {$_ -notlike "*java*"}

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

Get-Content .\data.txt | 
    Select-String -Pattern "{(\d+-){4}\d+}"

Это позволит получить строки, содержащие числовой шаблон, независимо от того, как они расположены (так, даже если это 1-я, 9-я, 12-я и 28-я строки).

Наконец, если вам действительно нужна каждая вторая строка, независимо от содержимого, попробуйте оператор модуля (%):

$i=1
Get-Content .\data.txt | 
    Where-Object {-not ($i++ % 2)}

хорошая особенность этой техники в том, что вы можете получить каждую 3-ю строку, заменив '2' на '3', или каждую 4-ю строку, заменив '4' и т. Д.

0 голосов
/ 04 июля 2018

Я получил требуемый вывод, используя код ниже

$ code = Get-Content% путь к файлу% | Строка выбора '^ {[A-Z0-9] {8} - ([A-Z0-9] {4} -) {3} [A-Z0-9] {12}} $'

0 голосов
/ 04 июля 2018

Я получил ответ, используя следующий скрипт.

$codes= Get-Content %path to text file" | where {$_ -notmatch 'Java'}

Foreach($code in $codes)
{
write-host $code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...