2017-03-17 3 views
0

私は簡単なことを望んでいます。私は、.csvファイルからデータを取得しようとしていますが、データは、以下のようなハイフン2行の間にある:私はハイフンのライン間のデータだけを保存したいPowerShell - 2行の間でデータを抽出します

File1 

header1,header2,header3,header4 
-------------------------------------------------------- 
data1,data2,data3,data4 
data1,data2,data3,data4 
data1,data2,data3,data4 
data1,data2,data3,data4 
data1,data2,data3,data4 
data1,data2,data3,data4 
data1,data2,data3,data4 
data1,data2,data3,data4 
data1,data2,data3,data4 
data1,data2,data3,data4 
data1,data2,data3,data4 
data1,data2,data3,data4 
data1,data2,data3,data4 
-------------------------------------------------------- 
end of file 

。私はラインがまったく同じであるので、これを行う方法を見つけるのが難しいです。ご協力いただきありがとうございます。

答えて

0

ソリューション3:

$firstrowfounded=$false 

Get-Content "C:\Temp\test.txt" | foreach { 
    if ($firstrowfounded) 
    { 
     if ($_ -like "*--*") 
     { 
      break 
     } 
     else 
     { 
      $_ 
     } 

    } 
    elseif ($_ -like "*--*") 
    { 
     $firstrowfounded=$true 
    } 

} 
0

これはあなたが望むものをつかむと、出力それあなただけ行うことができますGet-Content $output

0

ソリューション2

$startend=(Select-String -Path "C:\Temp\test.txt" -Pattern "--------------------------------------------------------").LineNumber 
(Get-Content "C:\Temp\test.txt")[$startend[0]..($startend[1]-2)] 
0

ソリューション1今output.csv

$input = "C:\example\File1.csv" 
$output = "C:\example\output.csv" 

Get-Content $input | Where-Object {$_ -like "*,*"} | Select-Object -Skip 1 | Out-File $output 

になります

Get-Content "C:\Temp\test.txt" | where {$_ -like '*,*'} | ConvertFrom-Csv 
関連する問題