none
PowerShell выборка из файла RRS feed

  • Вопрос

  • Коллеги, столкнулся с проблемой при написании скрипта в powershell 5.1

    На входе имеем большой текстовый файл с набором строк, разделённый на блоки. в качестве разделителя используется один и тот же символ (#).

    Необходимо выделить из текста блок между разделителями и проверить нахождение в этом блоке определенного символа (допустим, "@"), при нахождении такового, оставить весь блок без изменений и перейти к проверке следующего блока. Если совпадений в блоке нет - удалить весь блок целиком.

    К своему стыду не могу сформулировать захват блока из массива строк исходного файла.
    Структура файла примерно такая:

    #
    строка
    строка
    строка @ строка
    строка @ строка
    строка
    #
    строка
    строка
    строка
    #
    строка
    строка
    строка @ строка

    #


    • Изменено pashtet42 20 августа 2020 г. 9:52
    • Перемещено Vector BCOModerator 20 августа 2020 г. 10:42 перенесено из ветки разное
    • Изменен тип Vector BCOModerator 20 августа 2020 г. 10:42 вопрос
    20 августа 2020 г. 9:52

Ответы

  • ((get-content c:\content.txt | Out-String) -split '#' | where {$_ -match '\@'}) -join "`r`n#`r`n"
    возможно в get-content нужно будет подать кодировку (по типу -Encoding UTF8) и посмотреть не появляются ли лишние пустые строки от "`r`n#`r`n" и при необходимости оставить только "#"

    The opinion expressed by me is not an official position of Microsoft



    20 августа 2020 г. 10:46
    Модератор