如何删除CSV文件中以“#”开头的行

时间:2018-08-06 14:37:13

标签: powershell csv search

每天早上我都有一个报告,该报告会生成一个CSV文件,其中包含计算机名称以及整个文件中的其他注释。注释的每一行都以“#”开头,​​注释分散在整个文档中,而不仅仅是在文档的开头,所以我不能只阅读前几行。

有什么方法可以搜索CSV文件并删除以“#”开头的行?还是有办法选择不以“#”开头的行,并将其另存为新文件?

3 个答案:

答案 0 :(得分:3)

是的,绝对如此。

您可以逐行读取文件,只需过滤掉以#开头的所有内容:

Get-Content $csvPath |Where-Object {$_ -notlike '#*'} |Set-Content $newCsvPath

答案 1 :(得分:0)

foreach ($thing in $csv) {
    if ($thing.StartsWith("#")) {
        continue
     } else {
        #insert what you want to do here
     }
}

答案 2 :(得分:0)

您的duplicate question提到您还想过滤出空行。这样做:

Get-Content "inputfile.csv" |
  Where-Object { $_ -notmatch '(^\s*$)|(^\s*#)' } |
  Set-Content "outputfile.csv"