使用Powershell删除基于关键字的标题行

时间:2015-08-06 14:17:39

标签: powershell csv

我已经四处寻找,我已经看到了解决方案,删除前3行或静态的东西。 但是我有一个每日csv报告文件,例如,标题行并不总是相同。昨天的文件将有4行标题,今天我有7行标题。

但所有数据都以一个“真实”标题行开头。 我想如果我能找到一种方法在名称下面进行搜索和匹配,然后删除上面的所有内容。

"Statistics Date","Branch","Branch Name","Company ID"

下面是我到目前为止所得到的。基本上读入csv,找到上面的文本,删除那些文本上面的任何内容并保存或附加到新的文件名。

$filedaily=C:\ftp\dailyfile.csv
$header="Statistics Date","Branch","Branch Name","Company ID"
Get-content $filedaily 

Alex解决方案后编辑: 输出脚本之后。下面是我在输出的不一致性上发现的。

原文

"Amnet»Programatic»728x90»NA»BAN»DT»CPC»AUT»W»NA»TP»NA»AzureGlobal"

输出带有添加字符的文字

"Amnet»Programatic»728x90»NA»BAN»DT»CPC»AUT»W»NA»TP»NA»AzureGlobal"

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式:

$filedaily = "C:\ftp\dailyfile.csv"
$outfile = "C:\ftp\outfile.csv"

$string = Get-Content -Path $filedaily | Out-String
$regex = '(?s).*("Statistics Date","Branch","Branch Name","Company ID".*)'

$string -replace $regex, '$1' | Out-File -FilePath $outfile