Hvor å fjerne linjer som starter med "#" i en CSV-fil

stemmer
1

Hver morgen har jeg en rapport som genererer en CSV-fil som inneholder navn på datamaskiner, samt ytterligere kommentarer i hele filen. Hver linje som er en kommentar starter med #, og kommentarer er spredt over hele dokumentet, ikke bare i starten av dokumentet så jeg kan ikke bare lese i løpet av de første par linjene.

Er det noen måte å søke gjennom CSV-filen og slette linjer som starter med #? Eller er det en måte å velge linjer som ikke starter med #, og lagre dem som en ny fil?

Publisert på 06/08/2018 klokken 13:37
bruker
På andre språk...                            


3 svar

stemmer
3

Ja absolutt.

Du kan lese filen, linje for linje, og bare filtrere ut noe som starter med #:

Get-Content $csvPath |Where-Object {$_ -notlike '#*'} |Set-Content $newCsvPath
Svarte 06/08/2018 kl. 13:39
kilden bruker

stemmer
0
foreach ($thing in $csv) {
    if ($thing.StartsWith("#")) {
        continue
     } else {
        #insert what you want to do here
     }
}
Svarte 06/08/2018 kl. 13:49
kilden bruker

stemmer
0

Din duplikat spørsmålet nevnt at du også ønsker å filtrere ut tomme linjer. Dette vil gjøre det:

Get-Content "inputfile.csv" |
  Where-Object { $_ -notmatch '(^\s*$)|(^\s*#)' } |
  Set-Content "outputfile.csv"
Svarte 08/08/2018 kl. 14:48
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more