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

时间:2015-09-23 21:34:47

标签: 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]

1 个答案:

答案 0 :(得分:3)

不确定为什么meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="themes/MyTheme.min.css"/> <link rel="stylesheet"href="http://code.jquery.com/mobile/[version]/jquery.mobile-[version].min.css" /> <script src="http://code.jquery.com/jquery-[version].min.js"></script> <script src="http://code.jquery.com/mobile/[version]/jquery.mobile[version].min.js"></script> 会出现空行,但您可以将Select-String替换为不会返回空行的简单Select-String

这是我怎么做的:

Where-Object