2015-06-02 2 views
0

Следующая команда покажет линии, соответствующие шаблону.Показать предыдущие и после N строк для каждой строки?

cat file.txt | select-string -pattern "..." 

Как показать предыдущие и после трех строк для согласованных линий? (Как и параметр -C3 grep.) Также можно распечатать номер строки?

BTW, команда намного медленнее по сравнению с grep?

ответ

3

Укажите имя файла в параметре -PathSelect-String и используйте переключатель -Context, чтобы указать количество строк до и после включения.

select-string -path file.txt -pattern "..." -Context 1,3 

имя файла и номер строки будут включены в выходной

+0

Он работает. Одна странная вещь - она ​​вернет только одну строку и игнорирует параметр '-Content 10', когда он переадресован на' | Из-Gridview'. (Проверено на Powershell V2) – ca9163d9

+0

Это объект matchinfo, а не простые строки. Если вы хотите подключить его к Out-GridView, вам нужно будет построить выходные строки с использованием свойств .line, .context.postcontext и .context.precontext объектов. – mjolinor

+0

Как использовать '.line',' .context' и '.postcontext'? Однако было обнаружено, что '| Out-File filename.txt' все строки пропускает все строки. – ca9163d9

Смежные вопросы