Il comando wc (conteggio parole) è una delle utilità di base di GNU che apparentemente sembra semplice ma in realtà è un comando piuttosto utile. Come risulta dal nome, conta il numero di righe, parole, caratteri, byte e persino la lunghezza della riga più lunga del file e li stampa sullo standard output. Potresti aver bisogno di questo conteggio per diversi motivi. Ad esempio, puoi utilizzare il conteggio dei caratteri per limitare il numero di caratteri che possono essere inseriti in un post. Allo stesso modo, puoi contare il numero di utenti sul tuo sistema, il numero di pacchetti installati sul tuo sistema, ecc.
In questo articolo, spiegheremo come utilizzare il comando wc in Linux insieme alle opzioni della riga di comando e ad alcuni esempi.
Abbiamo eseguito i comandi sul sistema Ubuntu 20.04 Focal Fossa. Più o meno gli stessi comandi possono essere implementati anche su altre distribuzioni Linux. Abbiamo eseguito i comandi sull'applicazione Terminale predefinita a cui è possibile accedere tramite la scorciatoia da tastiera Ctrl+Alt+T.
Sintassi
Ecco la sintassi di base per il comando wc:
wc [OPTION]... [FILE]...
Se desideri utilizzare più opzioni, puoi aggiungerle senza uno spazio. Mentre per più file, dovresti separarli di un singolo spazio.
Utilizzo di base del comando wc
Quando il comando wc viene utilizzato senza alcuna opzione della riga di comando, restituisce il numero di righe, parole e byte nei file. Per utilizzare il comando wc, digita semplicemente wc seguito dal nome del file di cui vuoi trovare il conteggio.
$ wc testfile.txt
Spiegazione dell'output:
Il comando wc stampa i risultati del conteggio per il file specificato in quattro colonne. La prima colonna mostra il numero di righe nel file, la seconda colonna mostra il numero di parole, la terza colonna mostra il numero di byte e la quarta colonna mostra il nome del file.
Nota:wc stampa solo i conteggi di nuova riga non le righe effettive nel file specificato.
Nell'output del comando precedente, 12 è il numero di righe, 21 è il numero di parole e 116 è il numero di byte nel "testfile.txt".
Se non vuoi stampare il nome del file nel risultato, usa
Con il comando wc, puoi specificare più file per il conteggio. Il comando wc restituisce il conteggio per ciascuno dei file insieme al conteggio totale alla fine che è la somma del conteggio per ciascun file.
Il comando wc ha alcune opzioni della riga di comando. Diamo un'occhiata a queste opzioni e alle loro funzioni:
Utilizzo del comando wc con -l o –linee opzione, puoi stampare solo il numero di righe nel file. Ad esempio, il seguente comando stamperà solo il conteggio delle righe nel "testfile.txt":
Nell'output seguente, 12 è il numero di righe nel "testfile.txt".
Se devi stampare solo il conteggio delle parole in un file, usa il comando wc con -w o –parole opzione. Ad esempio, il seguente comando stamperà il conteggio delle parole nel "testfile.txt":
Nell'output successivo, 21 è il numero di parole nel “testfile.txt”.
Utilizzo del comando wc con -c o –byte opzione, è possibile stampare il numero di byte nel file. Il seguente comando stamperà il conteggio dei byte nel "testfile.txt":
Nell'output seguente, 116 è il numero di byte nel “testfile.txt”.
Utilizzo del comando wc con -m o –caratteri opzione, è possibile stampare il numero di caratteri nel file. Ad esempio, il seguente comando stamperà solo il conteggio dei caratteri nel "testfile.txt":
Nell'output seguente, 116 è il numero di caratteri nel file test.txt.
Nota:il conteggio dei byte e il conteggio dei caratteri sono gli stessi per i file in formato ASCII.
Se devi stampare la lunghezza della riga più lunga in un file specifico, puoi farlo usando il comando wc con -L o –lunghezza-linea massima opzione. Ad esempio, il seguente comando stamperà la lunghezza della riga più lunga del “testfile.txt”:
Nell'output seguente, 20 è la lunghezza della linea più lunga.
Per visualizzare la versione del comando wc, utilizzare il comando seguente:
Puoi anche combinare le opzioni della riga di comando. Ad esempio, per stampare il conteggio delle righe e dei byte, combinare le opzioni -l e -c come segue:
Nota:indipendentemente dal fatto che tu esegua -lc o -cl, l'output sarà sempre nello stesso ordine, ovvero conteggio di righe, parole e byte.
Nell'output sopra, 29 è il conteggio delle righe e 782 è il conteggio dei byte nel file "sample.txt".
Per salvare l'output del comando wc in un file, utilizzare l'operatore> come segue:
Diamo un'occhiata ad alcuni degli esempi del comando wc collegandolo ad altri comandi.
Per contare il numero di file in qualsiasi directory, reindirizzare l'output del comando find a wc. Ad esempio, per trovare il numero di file nella directory ~/Downloads, il comando sarebbe:
Il comando find elenca tutti i file nella directory ~/Downloads del tuo sistema che viene quindi reindirizzato al comando wc per ottenere un conteggio.
Il comando wc può essere utilizzato anche per contare il numero totale di utenti in un sistema. Per contare il numero di utenti, usa il comando 'geent passwd' e invia il suo output al comando wc come segue:
Il comando 'geent passwd' elenca tutti gli utenti nel sistema che viene quindi reindirizzato al comando wc per ottenere un conteggio.
Con il comando wc puoi anche contare il numero di pacchetti installati nel tuo sistema. Per contare il numero di pacchetti installati, usa il seguente comando:
Il comando "apt list –installed" elenca tutti i pacchetti installati nel sistema che viene quindi reindirizzato al comando wc per ottenere un conteggio.
Con il comando wc, puoi contare il numero di una parola particolare in un file. Ad esempio, per trovare quante volte la parola "scienza" è apparsa nel file denominato "campione.txt", il comando sarebbe:
In questo esempio, il comando grep cerca l'occorrenza della parola "science" nel file sample.txt che viene quindi reindirizzato al comando wc per ottenere un conteggio.
Con il comando wc puoi anche trovare il numero di caratteri in una riga specifica. Ad esempio, per trovare il numero di caratteri nella riga 50 del file denominato “sample.txt”, il comando sarebbe:
In questo esempio, la testa comando elencherà le prime 50 righe del file sample.txt che viene quindi reindirizzato al comando tail. La "coda -1 Il comando ” filtra quindi l'ultima riga (riga n. 50) del primo output ottenuto dalla testa comando. L'output dalla coda Il comando viene quindi reindirizzato al comando wc per ottenere un conteggio dei caratteri nella riga 50.
Nell'esempio seguente creeremo uno script che conterà righe, parole e byte in un file. Durante l'esecuzione dello script, passeremo il nome del file come argomento, in modo che tu possa eseguire lo stesso script per tutti i tuoi file.
Crea uno script con le seguenti righe di codice:
Ora esegui lo script passando il nome del file come argomento.
Ad esempio, per ottenere il conteggio di righe, parole e caratteri per il file denominato "sample.txt", esegui lo script passando sample.txt come argomento:
Dopo aver eseguito lo script, riceverai un output simile che ti mostra il conteggio delle parole per il tuo file.
Se il file si trova in un'altra posizione diversa dalla directory di lavoro corrente, menziona il percorso completo:
Ecco come puoi usare il comando wc in Linux. In questo articolo, hai appreso le basi del comando wc insieme alle sue opzioni della riga di comando e alcuni esempi pratici. Ora puoi contare facilmente il numero di righe, parole, caratteri e byte nei tuoi file e nell'output di altri comandi.
$ wc < testfile.txt
Conta da più file
Opzioni
Conta il numero di righe
$ wc -l testfile.txt
Conta il numero di parole
$ wc -w testfile.txt
Conta il numero di byte
$ wc -c testfile.txt
Conta il numero di caratteri
$ wc -m testfile.txt
Stampa lunghezza della riga più lunga
$ wc -L testfile.txt
Visualizza versione
$ wc --version
Stampa numero di righe e byte
$ wc -lc
Memorizza il conteggio in un file
$ wc sample.txt > file_count
Esempio di utilizzo del comando Wc
Conteggio dei file in qualsiasi directory
$ find ~/Downloads/ -type f | wc -l
Conta il numero di utenti
$ getent passwd | wc –l
Conta il numero di pacchetti installati
$ apt list --installed | wc -l
Conta il numero di una parola particolare in un file
$ grep -o ‘science’ sample.txt | wc -w
Conta il numero di caratteri in una riga specifica
$ head -50 sample.txt | tail -1 | wc -w
Usa uno script per il conteggio
#!/bin/bash
echo "File to read:"
read file
echo ""
echo "This file has the following number of:"
echo -n "Lines: "
wc -l < $file
echo -n "Words: "
wc -w < $file
echo -n "Chars: "
wc -c < $file
$ <./script_name> <path/to/filename>
$ ./script2 sample.txt
$ ./script2 /etc/passwd