Conosci un programma simile per wc (comando di conteggio parole unix) su Windows? [chiuso]

StackOverflow https://stackoverflow.com/questions/247234

  •  05-07-2019
  •  | 
  •  

Domanda

Una rapida ricerca mi dà tawbaware wc , ma non accetta stdout come flusso di input, nel senso che non posso usare la pipe all'interno di una sessione DOS .

Nota:

Non riesco a installare Cygwin o utilizzare PowerShell (che avrebbe consentito un ' | foreach-object {(get-content $ _). count} ')

unxutils e e gnuwin32 I pacchetti potrebbero avere questa funzione ...

È stato utile?

Soluzione

Puoi utilizzare l'originale " wc " ;, costruito per Windows: fa parte del coreutils pacchetto. Ottieni ex coreutils più recenti .

Altri suggerimenti

Ancora più semplice, trova / c . ex:

netstat -an | find /c "ESTABLISHED"
  

trova / c : visualizza solo il conteggio delle righe contenenti la stringa.

Per gli strumenti unix su Windows le opzioni sono:

msys - simile a unixtools, originariamente solo alcuni strumenti di costruzione necessari per andare con mingw (versione nativa di gcc), ora ha quasi tutti gli strumenti di Cygwin

cygwin - praticamente ogni cosa per unix, installazione complessa e richiede una dll per fornire unix api. Possono esserci problemi nel mescolare strumenti creati con diverse versioni di cygwin.dll

Unixtools - non tutti gli strumenti forniti da Cygwin ma compilati in modo nativo

ch - praticamente tutti gli strumenti unix, compilati nativamente. E una shell che include un interprete 'c'. La versione standard è gratuita (birra) ma non open source.

uwin - privo di ATT, include la shell korn se come quel genere di cose.

mks una porta commerciale di strumenti unix. Piuttosto costoso date le versioni gratuite disponibili.

Prova:

find /c /v "~any string that will never occur~"

Questo comando fornisce un conteggio di tutte le righe che NON contengono la stringa di ricerca. Provandolo, vedo un problema che sembra non contare le righe vuote alla fine di un file.

Beh, mi dispiace non essere d'accordo, ma unxutils hanno un wc.exe

Provalo!

Saluti,

Il mio unxutils ha un conteggio parole:

  

C: \ Java \ vssWorkspace \ java \ portlets_core > wc   -l C: \ Users \ malp \ AppData \ Local \ Temp__portlets41366.html   79.717   C: \ Users \ MALP \ AppData \ Local \ Temp__portlets41366.html

Inoltre, la pagina unxutils indica che wc.exe è disponibile. Stai cercando qualcosa che wc.exe non gestisce?

Ecco altri due modi (puro Windows CMD) per contare le righe in un registro git:

set n=0
for /f %a in ('git log --oneline') do set /a n=n+1

o

git log --online | find /v /c ""

Il vantaggio del primo è che si finisce con il valore in una variabile d'ambiente con cui si può fare qualcosa. Ma potrebbe funzionare lentamente con file di grandi dimensioni.

Esistono anche WinXs 4.2 , è shareware, quindi tu potrebbe vedere se farà ciò di cui hai bisogno.

Potresti installare un linguaggio di script per questo? Potrebbe essere eccessivo, ma se riesce a fare il lavoro con il minimo sforzo ...

getgnuwin32 facilita il download e l'installazione di gnuwin32 (che sicuramente ha l'utilità wc ).

Ho trovato questo thread e sono rimasto incantato dalle soluzioni innovative per emulare il wc usando solo gli strumenti che Windows ha incorporato. Questo ha stimolato una risposta alla mia necessità di un conteggio dei personaggi in modo da poter prevalere nella mia battaglia con un modulo web avviso di carattere massimo del campo.

Se vuoi wc -c che fornisce un conteggio di byte puoi usare DEBUG , un'utilità DOS (che non è elencata dal comando HELP) in Windows. Il conteggio dei caratteri deve essere uguale al conteggio dei byte meno il conteggio delle righe per le dimensioni di una nuova riga, ovvero un carattere di nuova riga per Unix ('\ n') o due caratteri, ritorno a capo + avanzamento riga ('\ cr' e '\ lf' o ' \ 0Dh '' 0Ah 'per un file di testo normale DOS.

Conteggio caratteri = Conteggio byte - (Conteggio righe * sizeof (" \ n "))

Per fare ciò aprire una finestra della riga di comando (Start- > Run- > Open: " cmd "), eseguire il debug sul file di testo normale ed esaminare il registro CX che contiene la lunghezza del file caricato:

  

Debug [nome percorso]   -rcx   CX [filelength in hex]   :   q

Quindi esegui find sul file:

  

find / v / c " notlikelystring "   ---------- [nome percorso]: [conteggio righe]

E applica la formula.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top