Получить содержимое первой и последней строки файла CSV - PullRequest
0 голосов
/ 07 июня 2019

У меня есть CSV-файл с более чем 3000+ строками, но я хотел бы прочитать / получить содержимое только первой и последней записи.

У меня есть 3 столбца: BatchID, Transprinted и Date. Я не могу сопоставить номер строки переменной.

$csvdata=Import-Csv $file.FullName 

write-host $csvdata.Length

foreach($logInCsv in $csvdata)
{
    where $logInCsv.Batch_ID=$logInCsv.Length-1
    {
        $batchID=$logInCsv.Batch_ID
        $transactionID=$logInCsv.Transaction_id
        $printDate=$logInCsv.Date
    }

    Write-Host $batchID $transactionID $printDate
}

Ответы [ 3 ]

1 голос
/ 07 июня 2019

Вам не нужно повторять строки,
достаточно импортировать индекс первого и последнего.

С примером входного файла:

> Get-Content .\SO_56497517.csv
BatchID,Transprinted,Date
1,abc,2019-01-13
2,def,2019-03-15
3,xyz,2019-06-06

Этот скрипт:

## Q:\Test\2019\06\07\SO_56497517.ps1
$File = Get-Item '.\So_56497517.Csv'
$Csvdata=(Import-Csv $File.FullName)[0,-1]
$Csvdata

дает этот вывод:

BatchID Transprinted Date
------- ------------ ----
1       abc          2019-01-13
3       xyz          2019-06-06
1 голос
/ 07 июня 2019

Это должно быть просто:

$csvdata = Import-Csv $file.FullName 
$csvdata | Select-Object -First 1
$csvdata | Select-Object -Last 1
0 голосов
/ 07 июня 2019

Чтобы получить первый и последний (без пустых ячеек):

$csvdata = Import-Csv $file.FullName 
#re-assign without empty Cells
$csvdata = $csvdata | Where-Object {-not([string]::IsNullOrEmpty($_.ColumName))} 
$csvdata | Select-Object -First 1
$csvdata | Select-Object -Last 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...