如何使用Powershell从文本文件中删除空白行

狼狼

我在Powershell中构建了一个解析器,用于将vmstat日志转储转换为CSV文件,作为图形框架(Rickshaw)的输入。我在要删除的文件中重复了“标头”。数据样本如下:

Tue Sep  1 14:03:26 2015: procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
    Tue Sep  1 14:03:26 2015:  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
    Tue Sep  1 14:03:26 2015:  0  1 224412 358316 248772 63286912    0    0   388   267    1    1  8  0 91  1  0    
    Tue Sep  1 14:03:36 2015:  0  0 224412 357572 248796 63286916    0    0     0     8  220  261  0  0 100  0  0   
    Tue Sep  1 14:03:46 2015:  0  0 224412 357696 248808 63286916    0    0     0    14  276  293  0  0 100  0  0   
    Tue Sep  1 14:03:56 2015:  0  0 224412 357688 248808 63286916    0    0     0    13  231  269  0  0 100  0  0   
    Tue Sep  1 14:04:06 2015:  0  0 224412 357300 248812 63286920    0    0     0    17  266  283  0  0 100  0  0   
    Tue Sep  1 14:06:56 2015: procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
    Tue Sep  1 14:06:56 2015:  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
    Tue Sep  1 14:06:56 2015:  1  0 224412 357348 248976 63286928    0    0     0     1  182  231  0  0 100  0  0   
    Tue Sep  1 14:07:06 2015:  0  0 224412 357348 248980 63286928    0    0     0     9  211  251  0  0 100  0  0   
    Tue Sep  1 14:07:16 2015:  0  0 224412 357136 248988 63286928    0    0     0    19  287  279  0  0 100  0  0   
    Tue Sep  1 14:07:26 2015:  0  0 224412 357012 249004 63286928    0    0     0     9  199  244  0  0 100  0  0   
    Tue Sep  1 14:07:36 2015:  0  0 224412 357080 249012 63286928    0    0     0     7  235  258  0  0 100  0  0   
    Tue Sep  1 14:10:26 2015: procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
    Tue Sep  1 14:10:26 2015:  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
    Tue Sep  1 14:10:26 2015: 12  0 224400 351832 265992 62560000    6    0    15 25262 8579  617 96  4  0  0  0    
    Tue Sep  1 14:10:36 2015: 12  0 224400 379200 266064 62444728    0    0     2 16727 8418  761 97  3  0  0  0    

我使用这段代码来完成这项工作。

Get-Content "C:\Projects\Play\Garage\Data_Processing\Sampler.log" | select-string -pattern 'procs|swpd' -notmatch | Out-File "C:\Projects\Play\Garage\Data_Processing\Refined.log"

生成的文件删除了所需的行,但在开头和结尾处插入了空白行。因此,我无法将此数据/文件发送到下一步的分析。我可能做错了什么?

结果文件数据:

> [BLANK LINE]
    Tue Sep  1 14:03:26 2015:  0  1 224412 358316 248772 63286912    0    0   388   267    1    1  8  0 91  1  0    
    Tue Sep  1 14:03:36 2015:  0  0 224412 357572 248796 63286916    0    0     0     8  220  261  0  0 100  0  0    
    Tue Sep  1 14:03:46 2015:  0  0 224412 357696 248808 63286916    0    0     0    14  276  293  0  0 100  0  0    
    Tue Sep  1 14:03:56 2015:  0  0 224412 357688 248808 63286916    0    0     0    13  231  269  0  0 100  0  0    
    Tue Sep  1 14:04:06 2015:  0  0 224412 357300 248812 63286920    0    0     0    17  266  283  0  0 100  0  0    
    Tue Sep  1 14:06:56 2015:  1  0 224412 357348 248976 63286928    0    0     0     1  182  231  0  0 100  0  0    
    Tue Sep  1 14:07:06 2015:  0  0 224412 357348 248980 63286928    0    0     0     9  211  251  0  0 100  0  0    
    Tue Sep  1 14:07:16 2015:  0  0 224412 357136 248988 63286928    0    0     0    19  287  279  0  0 100  0  0    
    Tue Sep  1 14:07:26 2015:  0  0 224412 357012 249004 63286928    0    0     0     9  199  244  0  0 100  0  0    
    Tue Sep  1 14:07:36 2015:  0  0 224412 357080 249012 63286928    0    0     0     7  235  258  0  0 100  0  0    
    Tue Sep  1 14:10:26 2015: 12  0 224400 351832 265992 62560000    6    0    15 25262 8579  617 96  4  0  0  0    
    Tue Sep  1 14:10:36 2015: 12  0 224400 379200 266064 62444728    0    0     2 16727 8418  761 97  3  0  0  0    
>[BLANK LINE]
>[BLANK LINE]
>[BLANK LINE]
蓝莓蛋糕

不知道为什么Select-String要制作空行,但是可以替换Select-StringWhere-Object不返回空行的简单

这是我要怎么做:

Get-Content "C:\Projects\Play\Garage\Data_Processing\Sampler.log" | Where-Object -FilterScript {$_ -notmatch 'procs|swpd'} | Out-File "C:\Projects\Play\Garage\Data_Processing\Refined.log"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用PrintStream写入文本文件而在每行之间不留任何空白行?

如何使用批处理或PowerShell从文本文件中删除换行符

如何删除/阻止文本文件中的重复行

用另一个文件的每一行填充文本文件中的空白行

如何从Powershell中的文本文件删除行?

(C ++)为什么不计算文本文件中的其他空白行?

如何将数据从文本文件提取为句子,句子定义为空白行之间的数据行?

如何删除文本文件中的重复行?

如何使用sed从文本文件中删除多条随机行?

使用UNIX删除文本文件中的某些行

使用缓冲读取器和写入器删除文本文件中的空白行;但是我总是把最后一行留空

如何在文本文件中添加/删除行?

如何从文本文件中删除一行?

阻止Filezilla在文本文件中插入空白行

如何删除文件中的空白行?

批处理,如何读取空白行的文本文件

删除文本文件中的行

如何删除文本文件中的特定行?

如何从文件中删除空白行?

如何使用sed在文本文件中的特定字符后添加空白行?

如何从文本文件中删除特定行?

使用php从文本文件中删除行

如何使用 bash 命令删除文本文件中匹配多个模式的行?

如何使用 PowerShell 从文本文件中删除特殊字符?

如何从文本文件中删除仅数字行?

如何使用 PowerShell 删除文本文件中的特定项目包含内容?

Powershell:如何从文本文件中不符合条件的行中删除 CRLF

使用 PowerShell 从文本文件中删除多行特定行

删除特定行后如何删除文本文件中的空白行?