2015-08-06 2 views
2

Я искал вокруг, и я видел решения, где можно удалить верхние 3 строки или что-то статическое. Но у меня есть ежедневные файлы отчетов csv, где строки заголовков не всегда одинаковы, например. вчерашний файл будет иметь 4 строки заголовков, и сегодня у меня есть 7 строк заголовка.Удалить строки заголовков на основе ключевого слова using Powershell

Но все данные начинаются с одной «реальной» строки заголовка. Я думаю, что если я найду способ выполнить поиск и совпадение ниже имени, а затем удалить все, что выше этого.

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

ниже, что я получил до сих пор. В основном прочитайте этот csv, найдите текст выше, удалите что-нибудь над этими текстами и сохраните его или добавьте к новому имени файла.

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

Редактировать после решения Алекса: после вывода сценария. ниже - это то, что я нашел на несогласованности вывода.

оригинальный текст

"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" 
+0

Это решается путем добавления -Кодирование UTF8 на 3-й линии скрипта после $ filedaily –

ответ

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 
+0

Привет, я сделал то, что вы разместили здесь. Но выходной файл бит отличается от входного файла. одна из строк в выходном файле добавила кучу символов. смотри ниже Первоначальный текст «AMNET» Programatic »728x90» NA »BAN» DT »КПК» AUT »W» NA »TP» NA »AzureGlobal " вывод текста " Amnet» Programatic »728x90» NAA »Бана» ДТА »CPC» AUT »W» NA »TP» NA »AzureGlobal» –

+0

Вероятно, проблема с кодировкой. Что такое кодировка исходного файла? Я бы предположил, что это UTF-8. Если это так, добавьте '-Encoding UTF8' в команду Out-File. –

+0

, когда я использую блокнот ++, чтобы открыть его. это говорит. UNIX UTF-8 без спецификации –

Смежные вопросы