一个powershell问题:我想提取由某个模式生成的字符流中的每一行,这些模式在伪代码中会是这样的:PS> <a_ps_command> <the_application_command_for_outputting_the_text_stream> | <my_filter > output_file.txt
在我的情况下,应用程序是一个CM工具,输出源文件的更改历史记录,(伪)模式应该是这样的:
<a couple of numbers><a name><a time stamp><a line of characters>
干杯,基督徒
PowerShell中的过滤cmdlet是Where-Object(别名Where和?).您只需将SCM命令的输出传递给它.然后使用$ _来表示当前行并对其进行测试,例如:
tf hist .\Settings.StyleCop /i /stopafter:20 | Where {$_ -match '^\d+.*?Hack'}
Run Code Online (Sandbox Code Playgroud)
的-Match运算符用于输出的当前行比较针对正则表达式.我^\d+用来过滤掉前两行tf hist输出(这是格式化字符串),然后我Hack在该行的任何其他地方搜索文本(例如在注释中查找).您可以修改和增强正则表达式以满足您的需求.
| 归档时间: |
|
| 查看次数: |
360 次 |
| 最近记录: |