Ho un file csv e voglio emettere un nuovo file csv, che contiene solo le prime 10 righe di quello originale. Finora ho trovato solo il codice per eliminare singole righe o righe che contengono una determinata parola. È probabilmente un one-liner di 15 caratteri, ma non sono sicuro di come affrontarlo, ogni aiuto sarebbe molto apprezzato. Non mi aspetto che tu scriva codice, solo il comando giusto mi aiuterà.Estrai solo le prime 10 righe di un file csv in PowerShell
12
A
risposta
6
Get-Content in.csv -Head 10 > out.csv
23
Get-Content "C:\start.csv" | select -First 10 | Out-File "C:\stop.csv"
Che ha fatto
5
Usando il parametro -TotalCount è raccomandato. Soprattutto se hai un grande file CSV. In questo modo, si leggeranno solo le prime 10 righe del file CSV, invece di leggere tutte le righe, selezionando le prime 10 righe ed estraendole.
Get-Content C:\Temp\Test.csv -TotalCount 3 | Out-File C:\Temp\Test10lines.csv
Questo funziona in Powershell 2 in poi.
+0
Quale sarebbe l'equivalente Linux? – Marine1
0
è anche possibile utilizzare
(Get-Content yourfile.csv)[0 .. 11]>outputfile.csv
essere sicuri di includere la riga di intestazione o si potrebbe incorrere in problemi. Puoi anche modificare i numeri per ottenere le righe che desideri. Le prime e le prime bandiere non funzionavano per me.
Questa è anche una risposta, ma a seconda di quanto è grande il file è la risposta utilizzando '-Head 10' sarebbe più efficiente in quanto non è necessario leggere l'intero file. – Matt
Non so quale versione stai usando, ma a partire dalla versione 2.0, ricevo un messaggio che dice _Get-Content: non è possibile trovare un parametro che corrisponda al nome del parametro 'Head' ._ – GlennFromIowa
Per powershell 2 vai con la risposta di emekm e usa Parametro "-TotalCount" sul cmdlet "Get-Content". –