powershell - Powershell txt文件过滤

标签 powershell

我有一个这样的日志文件,其中包含很多行。

connected to TEST01:5555
connected to Android-TEST:5555
up time: 01:39:18, idle time: 06:20:37, sleep time: 00:00:00

connected to TEST02:5555
up time: 01:39:27, idle time: 05:53:12, sleep time: 00:00:00

connected to TEST03:5555
up time: 01:38:27, idle time: 06:24:59, sleep time: 00:00:00

connected to TEST04:5555
up time: 01:39:21, idle time: 06:25:28, sleep time: 00:00:00

connected to TEST05:5555
up time: 18 days, 22:03:19, idle time: 74 days, 04:25:45, sleep time: 00:00:00

connected to TEST06:5555
connected to TEST07:5555
connected to TEST08:5555
up time: 01:49:30, idle time: 07:11:23, sleep time: 00:00:00

connected to TEST09:5555
up time: 18:53:29, idle time: 3 days, 01:51:07, sleep time: 00:00:00

我想通过Powershell仅包含2列(设备名称和运行时间)来输出报告。

我找不到一种制作模式来选择字符串或在哪里对象的方法。

有什么想法吗?

最佳答案

这对您的数据有用吗?

$filename = '<filename>'

$regex = 
@'
(?ms)connected to (\S+)\s*
up time: ([0-9:]+).+
'@

Get-Content $filename -Delimiter 'sleep time' |
 foreach {
  if ($_ -match $regex)
   {
    [PSCustomObject]@{
     DeviceName=$Matches[1]
     UpTime = $Matches[2]
     }
    }
 }

关于powershell - Powershell txt文件过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28951202/

相关文章:

sql - 如何使用 Powershell Restore-SqlDatabase cmdlet 可靠地覆盖现有数据库

powershell - Powershell 中的 GPU 加速

algorithm - PowerShell V2.0中计算SHA1哈希算法

powershell - powershell卸载多个应用程序?

PowerShell脚本没有压缩正确的文件

powershell - 使用PowerShell将路径用作变量来组织文件?

PHP Powershell 命令

powershell - 从自定义 cmdlet (Powershell ISE) 进行管道传输后,Intellisense 不起作用

windows - 为什么使用管道在 powershell 中不起作用?

powershell - 将字符串转换为 PowerShell 日期时间