使用Powershell根据关键字删除标题行



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

但是所有的数据都从一个"真正的"标题行开始。我想如果我能找到一种方法来做一个搜索和匹配下面的名称,然后删除上面的一切。

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

下面的

是我目前得到的。基本上就是读取csv文件,找到上面的文本,删除上面的任何内容,然后保存或附加到一个新文件名。

$filedaily=C:ftpdailyfile.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"

您可以使用正则表达式:

$filedaily = "C:ftpdailyfile.csv"
$outfile = "C:ftpoutfile.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

最新更新