用于搜索文本文件并按顺序输出多行的Powershell脚本

用于搜索文本文件并按顺序输出多行的Powershell脚本,powershell,Powershell,我的源文件有多个串行接口。我想简单地输出每个串行行Serial0/2/0:0,然后在每个串行接口下的输出文件的下一行上执行以下删除、中止等操作。到目前为止,我有: get-childitem show-int.log | select-string -pattern drops | foreach {$_.line} 只需使用>todays date运行即可。我是一名网络工程师,所以请原谅我在ps方面有多差。我曾尝试过谷歌,并将许多项目用引号括起来,但没有一项能让我满意 Serial0/2/0

我的源文件有多个串行接口。我想简单地输出每个串行行Serial0/2/0:0,然后在每个串行接口下的输出文件的下一行上执行以下删除、中止等操作。到目前为止,我有:

get-childitem show-int.log | select-string -pattern drops | foreach {$_.line}
只需使用>todays date运行即可。我是一名网络工程师,所以请原谅我在ps方面有多差。我曾尝试过谷歌,并将许多项目用引号括起来,但没有一项能让我满意

Serial0/2/0:0启动,线路协议启动

硬件是DSX1

MTU 1500字节,BW 1536 Kbit/sec,DLY 20000 usec

可靠性255/255,txload 33/255,rxload 133/255

封装PPP、LCP Open、多链路Open

链接是Multilink bundle Multilink1的成员,未设置环回

保持10秒

上次输入00:00:00,输出00:00:00,输出从不挂起

最后一次清除显示接口计数器1d18h

输入队列:0/75/0/0 size/max/drops/flushes;总产量下降: 381

排队策略:fifo

输出队列:0/40大小/最大值

5分钟输入速率805000位/秒,188包/秒

5分钟输出速率200000位/秒,153包/秒

8320454数据包输入,2999426407字节,0无缓冲区

接收到0个广播0个IP多播

 22 runts, 0 giants, 0 throttles 

 30 input errors, 29 CRC, 0 frame, 1 overrun, 0 ignored, 0 abort

 7629921 packets output, 1268811436 bytes, 0 underruns

 0 output errors, 0 collisions, 4294967295 interface resets

 0 unknown protocol drops

 0 output buffer failures, 0 output buffers swapped out

 7 carrier transitions
不精确,但简单:

Get-Content show-int.log | select-string 'Serial0/2/0:0' -Context 0,10

不清楚你在问什么。请添加一个示例,说明输入文件的外观,以及您希望输出的内容。我刚刚用输入文本编辑了我的注释,但它看起来很糟糕。很有效!但是,我希望它输出,比如说,Serial0/2/0:0下的第三行,而不是之前的前两行。然后输出第9行。我尝试过-Content 3等等,但这使得它输出Serial0/2/0:0上面的3行,然后是Serial0/2/0:0后面的3行。是的,-上下文只是显示周围的行。如果你想要更精确的控制,你需要创造更复杂的东西。你的问题不清楚这是否真的需要。我道歉。我现在至少了解了上下文。