Linux 4.4.0-38-generic (ajaylinux) 09/27/2016 _x86_64_ (2 CPU) 07:22:03 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 07:22:03 PM all 0.16 0.04 0.09 0.16 0.00 0.01 0.00 0.00 0.00 99.55
这是我的文本文件,任何人都可以帮助我。我需要使用上面的标题来获取值,例如在powershell中使用%idle 99.55。任何帮助人员
答案 0 :(得分:1)
不要使用正则表达式。该文件看起来像包含结构化数据。读取它as CSV并将tab char指定为字段分隔符。从CSV数据中选择所需的列内容非常简单。
答案 1 :(得分:0)
使用正则表达式将两个或多个空格替换为,
,使日志与CSV兼容:
$data = (Get-Content 'file.txt') -replace '\s{2,}', ',' | Select -skip 2 | ConvertFrom-Csv
由于%
不是有效的标识符,因此用引号括起属性:$data.'%usr'
或者在转换前剥离角色:
$data = (Get-Content 'file.txt') -replace '\s{2,}', ',' -replace '%', '' |Select -skip 2 |
ConvertFrom-Csv
$data.usr