Equivalente di Windows del comando 'head -c'


7

Ho un comando unix che effettua le seguenti operazioni:

head -c 2048 > test.txt

fondamentalmente sta prendendo il primo 2kb del file test.txt.

Possiamo fare qualcosa di simile nel prompt di windows cmd?


grazie ragazzi per tutte le vostre fantastiche risposte .. @ sonjz Ho un file di testo con una lunga stringa di hex dump .. come posso usare il vostro codice per estrarre solo 2kb di dati da esso ?? Ho provato il tuo codice ma sta ancora estraendo l'intero dump hex..thanks..i caricherò il file di testo per te ..
plasma33

per favore trova il link qui- & gt; dropbox.com/s/h29mdg0t8df8i1e/test.txt?dl=0
plasma33

@ ekaj..grazie anche per il tuo suggerimento ..
plasma33

@ sonjz: come usare "Get-FileHex" per estrarre 2kb di dati esadecimali usando PowerShell ... sai di questa funzione ??
plasma33

vuoi estrarre la matrice di byte. Il seguente codice scava 2KB e scrive in un nuovo file: $ byteArray = Get-Content binary.bin -Encoding Byte -TotalCount 2KB; [io.file] :: WriteAllBytes ('c: \ binary.bin', $ byteArray)
sonjz

Risposte:


8

Semplificare questa risposta a causa del commento di @chubbsondubs.

-TotalCount conteggia le linee se legge nel testo, quindi forza sempre a leggere il file come byte, quindi il -TotalCount si riferirà solo ai byte e puoi ottenere un conteggio account.

Get-Content test.txt -Encoding byte -TotalCount 2KB | Set-Content test1.txt -Encoding byte

Maggiori informazioni qui: https://stackoverflow.com/questions/888063/powershell-to-get-the-first-x-mb-of-a-file


Ciò ottiene le prime 2048 righe non i byte del file. TotalCount prende il numero di linee che vuoi.
chubbsondubs

@chubbsondubs yup, ora vedo il problema, devi sempre codificare e decodificare in byte, aggiornerò la risposta
sonjz

0

Da quello che posso dire che non puoi stampare per dimensione in modo nativo; C'è la type comando che genererà un intero file di testo, ma non è possibile specificare quanto si vuole produrre.

C'è anche il more comando, che ti permetterà di stampare le righe di un file. Queste sono alcune delle bandiere di more /?:

/E      Enable extended features
/C      Clear screen before displaying page
/P      Expand FormFeed characters
/S      Squeeze multiple blank lines into a single line
/Tn     Expand tabs to n spaces (default 8)

        Switches can be present in the MORE environment
        variable.

+n      Start displaying the first file at line n

files   List of files to be displayed. Files in the list
        are separated by blanks.

If extended features are enabled, the following commands
are accepted at the -- More -- prompt:

P n     Display next n lines
S n     Skip next n lines
F       Display next file
Q       Quit
=       Show line number
?       Show help line
<space> Display next page
<ret>   Display next line

Se nessuno dei due funziona per te, puoi in alternativa installare Cygwin e puoi usare cat o head.


cygwin ha anche il comando 'testa' se scegli di usare quell'opzione
Jeff Clayton

@JeffClayton Spara .. hai ragione, per qualche ragione stavo pensando a gatto invece che a testa
cutrightjm

'cat' è il comando unix che corrisponde al comando 'type' in windows, dal momento che stavi discutendo di 'type' ha senso.
Jeff Clayton
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.