Introduzione

Su sistemi operativi Linux e Unix, il comando wc consente di contare il numero di righe, parole, caratteri e byte di ciascun file o input standard e stampare il risultato.

In questo tutorial, ti mostreremo come usare il comando wc attraverso esempi semplici e pratici.

Comando Wc

La sintassi per il comando wc è la seguente:

wc OPTION... [FILE]...

Il comando wc può accettare zero o più nomi di input FILE. Se FILE non è specificato, o quando FILE è -, wc leggerà l'input standard. Una parola è una stringa di caratteri delimitata da uno spazio, una scheda o una nuova riga.

Nella sua forma più semplice se usato senza alcuna opzione, il comando wc stamperà quattro colonne, il numero di righe, parole, conteggi di byte e il nome del file per ciascun file passato come argomento. Quando si utilizza l'input standard, la quarta colonna (nome file) non viene visualizzata.

Ad esempio, il comando seguente visualizzerà informazioni sul file virtuale /proc/cpuinfo:

wc /proc/cpuinfo

L'output sarà simile al seguente:

428 3412 22346 /proc/cpuinfo
  • 428 è il numero di righe.
  • 3412 è il numero di parole.
  • 22346 è il numero di caratteri.

Quando si utilizza l'input standard, il nome del file non viene visualizzato:

wc < /proc/cpuinfo
428 3412 22346

Per visualizzare informazioni su più di un file, passare i nomi dei file, come argomenti, separati da spazio:

wc /proc/cpuinfo

Il comando ti fornirà informazioni su ciascun file e una riga comprese le statistiche totali:

428 3412 22346 /proc/cpuinfo
48 133 1261 /proc/meminfo
447 3665 26759 total

Le opzioni seguenti consentono di selezionare i conteggi da stampare.

  • -l, --lines- Stampa il numero di righe.
  • -w, --words- Stampa il numero di parole.
  • -m, --chars- Stampa il numero di caratteri.
  • -c, --bytes- Stampa il numero di byte.
  • -L, --max-line-length- Stampa la lunghezza della linea più lunga.

Quando si utilizzano più opzioni, i conteggi vengono stampati nel seguente ordine: newline, parole, caratteri, byte, lunghezza massima della riga.

Ad esempio, per visualizzare solo il numero di parole che useresti:

wc -w /proc/cpuinfo
4565 /proc/cpuinfo

Ecco un altro esempio che stamperà il numero di linee e la lunghezza della linea più lunga.

wc -lL /proc/cpuinfo
338 562 /proc/cpuinfo

L'opzione --files0-from=F consente al comando wc di leggere l'input dai file specificati dai nomi con terminazione NUL nel file F. Se F è - legge i nomi dall'input standard. Ad esempio, è possibile cercare file utilizzando il comando find e fornire tali file come input per wc:

find /etc -name 'host*' -printf0 | wc -l --files0-from=-

L'output mostrerà il numero di righe per tutti i file nella directory /etc i cui nomi iniziano con "host":

4 /etc/host.conf
27 /etc/avahi/hosts
1 /etc/hostname
14 /etc/hosts
46 total

Contare il numero di linee

Il comando wc viene utilizzato principalmente con l'opzione -l per contare solo il numero di righe in un file di testo. Ad esempio, per contare il numero di righe nel file /etc/passwd digitare:

wc -l /etc/passwd

La prima colonna è il numero di righe e la seconda è il nome del file:

44 /etc/passwd

Contare il numero di parole

Per contare solo il numero di parole in un file di testo utilizzare wc -w seguito dal nome del file. L'esempio seguente conta il numero di parole nel file ~/Documents/file.txt:

wc -l /etc/passwd

Il numero di parole è mostrato nella prima colonna:

423 /home/noviello/Documents/file.txt

Esempi di comandi Wc

Il comando wc può essere utilizzato in combinazione con altri comandi tramite piping. Ecco alcuni esempi.

Contare i file nella directory corrente

Il comando find mostra un elenco di tutti i file nella directory corrente con ogni nome di file su una singola riga al comando wc, che conta il numero di righe e stampa il risultato:

find . -type f | wc -l

Contare il numero di utenti

Nell'esempio seguente viene wc utilizzato per contare il numero di righe dall'output del comandogetent.

getent passwd | wc -l

Conclusione

Il comando wc sta per word count e ha una sintassi abbastanza semplice. Ti consente di contare il numero di righe, parole, byte e caratteri in uno o più file di testo.