Denis_Kokyev
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору ДВС Хочу немножко для себя разобраться с PowerShell и мне настойчиво предлагают пересесть именно на PS sed и проч. На примере обработки плейлистов пытаюсь изучить эту среду, читаю учебники, форум, примеры. Но осталось ещё много вопросов, ответов на которые я так и не нашёл. Вот из большого листа в другой файл записываю каналы только нужных мне групп, каждый канал в листе представлен 3 строчками: Название, Группа, Ссылка. Потому ищу нужную группу и беру по строчке сверху и снизу от неё: Код: Get-Content $Playlist_Origin | select-string -Pattern "RU |DE Music|" -CaseSensitive -Context 1 | Add-Content $Playlist_Out | Но почему-то в выходном файле перед каждой строчкой появляется два пробела, а перед искомой строчкой > пробел. Их можно потом убрать: Код: (Get-Content $Playlist_Out) -replace ' |> ','' | Set-Content $Playlist_Out | но можно ли сделать так, чтоб их не было изначально? В sed, для того, чтоб поменять группу для какого-нибудь канала, я ищу этот канал и меняю строчку под ней: Код: sed -i -e "/%spb%$/{n;s/.*/%group_temp%/}" %FilePlayListOut% | Но в PS я так и не нашёл, как это сделать. Удаление каналов в текущем файле. Я нашёл лишь как удалять одну строчку, да и то в другой файл: Код: Get-Content $Playlist_Out1 | Where-Object {$_ -notmatch 'Спортивные'} | Set-Content $Playlist_Out2 | А нужно удалять 3 строчки: для группы - по 1 строчке сверху и снизу, для канала - найденную и 2 строчки снизу. И чтоб не плодить файлов, в том же файле делать эти изменения. А послали меня искать счастья в теме ps после того, как я нашёл в grep такую вещь: Код: grep -U -A2 -f %FilePatternCannels% %FilePlayList% > %FilePlaylistOut% | Тобишь я завожу в файл pattern список каналов, которые мне нужны, и выходной файл у меня попадают лишь те каналы, что мне нужны. Отрабатывает эта конструкция. Но ожидалось, что порядок каналов будет как в файле со списком каналов, а он оказывается в порядке с оригинальным плейлистом. И когда я спрашивал, можно ли порядок вывода сделать, как мне надо, мне сказали, что такие вещи легко делаются в powershell. Только вот я не только этого не нашёл как сделать, я другие вещи не нашёл как притворить в жизнь. Пока в основном на эти вопросы ищу ответы, может кто поможет. |