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.