Ricerca nel sito web

6 modi per contare il numero di righe in un file Linux


Conta le linee, stima la dimensione.

Punti chiave

  • È possibile utilizzare il comando wc con l'opzione "-l" per trovare il conteggio delle righe di un file (wc -l nomefile). Verrà stampato anche il nome del file.
  • Una combinazione del comando sed con l'opzione "-n" può anche darti un conteggio delle righe (sed -n '=' nome file). Questo comando stamperà i numeri di riga senza il contenuto del file.
  • Esegui il comando awk con la variabile "NR" incorporata per ottenere il conteggio delle righe di un file (nome file awk 'END {print NR}').

Vuoi contare il numero di righe in un file Linux? Ti forniremo diversi modi per farlo. Contare il numero di righe fornisce informazioni su quanto piccolo o grande è un determinato file.

Perché contare le righe in un file?

Come tutti i file del computer, i file Linux sono disponibili in diverse dimensioni. Alcuni file sono grandi, altri piccoli. Gli utenti Linux devono spesso controllare la dimensione del file per gestire lo spazio su disco del sistema ed evitare di rimanere senza spazio di archiviazione. Un modo per farlo è contare il numero di righe di un file, anche se in modo approssimativo. Proprio come lo spessore di un libro indica generalmente la sua lunghezza, il numero di righe in un file può in alcune situazioni darti un'idea relativa delle sue dimensioni.

Contare le righe di un file è utile per vari motivi. È possibile verificare il formato o la struttura del file. Può anche misurare la dimensione e la complessità di un file di testo, ad esempio un file di codice sorgente, un file di configurazione o un file di registro.

Il conteggio delle righe può aiutarti a filtrare e analizzare l'output di altri comandi. Ad esempio, è possibile analizzare il numero di righe in un file di registro di sistema. Questo ti aiuterà a verificare il numero approssimativo di errori presenti nel file di registro del sistema.

Il conteggio delle righe fornisce anche una stima degli elementi totali in una directory. Contando le righe di un file nel tempo, puoi tenere traccia delle modifiche apportate al file, come l'aggiunta o la rimozione di righe. Ciò può essere utile per eseguire il debug del software o tenere traccia delle modifiche a un documento.

Come contare le righe in un file su Linux

Linux fornisce una varietà di comandi e strumenti che rendono facile capire quante righe ci sono in un file. Alcuni di questi comandi sono wc, sed, grep e awk. Uno script Bash può anche aiutare a calcolare il conteggio delle righe in un file. Esploreremo ciascuno di questi metodi con un esempio.

1. Contare parole, righe e caratteri in un file utilizzando wc

Vuoi un modo semplice per contare le righe in un file? Basta usare il comando wc. Questo comando restituisce il numero di parole, righe e caratteri in un file.

Consideriamo un file di esempio, example.txt. Questo file contiene un elenco di alcuni comandi Linux per principianti:

Per contare le righe del file specificato denominato esempio.txt, aggiungi il flag -l con il comando wc seguito dal nome del file:

wc -l example.txt

L'output precedente mostra solo il conteggio delle righe. Per ottenere informazioni dettagliate sul file, utilizzare il comando wc senza alcuna opzione. Il comando wc, senza flag, stamperà il conteggio delle parole, delle righe e dei caratteri di un file in un singolo comando:

wc example.txt

Supponiamo ora di avere tre file denominati example.txt, new.txt e new1.txt. Per contare il numero di righe di più file, usa semplicemente il comando wc con l'opzione -l seguita dai nomi dei file.

wc -l example.txt new.txt new1.txt

Il comando wc può anche visualizzare il conteggio delle righe di tutti i file presenti all'interno di una directory. Per fare ciò, usa il comando wc con l'opzione -l seguita dall'operatore asterisco.

wc -l *

Come in tutti i casi precedenti, l'output mostra il nome del file insieme al conteggio delle righe. Per mostrare il conteggio delle righe senza il nome del file, esegui:

wc -l < example.txt

Qui, il comando wc utilizza il reindirizzamento dell'input. Questo fornirà il contenuto del file di esempio al comando wc. Quindi conta direttamente le righe senza visualizzare il nome del file.

Un altro modo per contare le righe in un file è collegare l'output del comando cat al comando wc -l.

cat example.txt | wc -l

2. Contare e visualizzare i numeri di riga di un file utilizzando sed

Il comando sed, o editor di flusso, è uno strumento da riga di comando essenziale per la manipolazione del testo su Linux. Esegue varie operazioni su un file, come l'inserimento, l'eliminazione, la sostituzione o l'aggiunta di testo. Il comando sed prende l'input da un file o da un input standard.

Il comando sed può anche contare il totale delle righe di un file specificato. Possono essere necessari argomenti diversi per stampare i numeri di riga.

Esegui il comando sed con l'opzione -n e un segno di uguale per contare in sequenza e mostrare i numeri di riga su righe separate.

sed -n '=' example.txt

A volte, ottenere il conteggio totale delle righe è più efficiente che recuperare i singoli numeri di riga per ciascuna riga del file. Il comando sed con le opzioni -n e $= può contare e visualizzare il numero totale di righe nel file. Il $= indica l'ultima riga del file. Garantisce che solo il numero di riga venga stampato sullo standard output.

Per ottenere un numero complessivo di righe nel file, utilizzare:

sed -n '$=' example.txt

3. Utilizzo di grep per contare il numero di righe in un file

Il comando grep viene utilizzato specificamente per cercare uno schema all'interno di un file. Non solo, ma può anche darci il conteggio totale delle linee che corrispondono o non corrispondono allo schema definito. Il modello definito è un'espressione regolare che specifica cosa cercare.

Se non specifichi il file, grep legge dallo standard input.

Aggiungi il flag -c con il comando grep per determinare il conteggio delle righe che corrispondono a un modello specifico. Ad esempio, per contare le righe in un file che contengono la parola "Comando", esegui:

grep -c Command example.txt

È anche possibile filtrare e contare facilmente le righe che non contengono una parola o uno schema particolare.

Per questo, usa il flag -v con grep:

grep -c -v awk example.txt

Esiste un altro modello di espressione regolare (".*") con un punto e un asterisco. Corrisponde a qualsiasi riga con zero o più occorrenze di qualsiasi carattere. A differenza dei due comandi precedenti, non cerca una parola specifica. Conta semplicemente e restituisce il numero di righe in example.txt che contengono uno o più caratteri.

grep -c ".*" example.txt

Il flag -c garantisce che venga visualizzato solo il conteggio delle righe, non il contenuto effettivo della riga che corrisponde al modello.

Per aggiungere il nome del file nell'output sopra, includi semplicemente il flag -H:

grep -Hc ".*" example.txt

4. Stampare il conteggio totale delle righe in un file utilizzando awk

Il comando awk viene utilizzato per l'elaborazione del testo e come strumento per l'estrazione e il reporting dei dati. È particolarmente efficace nella corrispondenza dei modelli e nell'elaborazione di campi e record.

Puoi usare il comando awk per contare le righe in un file. Utilizza il linguaggio di programmazione AWK per stampare il numero totale di record (righe) nel file.

awk 'END {print NR}' example.txt

Lo script awk specificato END {print NR} viene eseguito dopo aver elaborato tutte le righe nel file example.txt. Lo script istruisce awk a stampare il valore di NR, che rappresenta il numero totale di record (righe) elaborati.

5. Elencare e contare le righe in un file con il comando nl

Il comando nl aggiunge numeri di riga al contenuto del file specificato. È utile per visualizzare o stampare file con numeri di riga. È possibile utilizzare il comando nl con nomefile per contare le righe in un file specificato.

nl example.txt

Questo comando visualizzerà sia i numeri di riga che il contenuto della riga nel file example.txt.

Tuttavia, non è un modo efficiente per ottenere il conteggio delle righe dei file, soprattutto per i file di grandi dimensioni. Implica un'ulteriore elaborazione e rendering dell'output che non è necessario per il compito specifico di contare le linee. Immagina un file con migliaia di righe e devi scorrere fino in fondo per ottenere il conteggio totale delle righe.

Se vuoi conoscere il conteggio totale delle righe senza altre informazioni, collega l'output del comando nl con tail e awk.

nl example.txt | tail -1 | awk '{print $1}'

Il comando nl aggiunge un numero di riga all'inizio di ogni riga. Quindi l'output del comando nl viene reindirizzato al comando tail, che visualizza l'ultima riga dell'input. L'opzione -1 indica al comando tail di mostrare solo una riga. Fino ad ora, hai l'output "10 uname Command".

Successivamente, questo output viene fornito come input al comando awk, che stampa un campo specifico dall'input. L'argomento {print $1} dice al comando awk di stampare il primo campo, che è il numero di riga. Ad esempio, se l'input è "10 uname Command", il comando awk stamperà il primo campo, che in questo caso è la riga numero 10.

6. Utilizzo di Bash Script per contare il numero di righe in un file

Lo scripting Bash, uno strumento utile sui sistemi Linux, viene comunemente utilizzato per automatizzare le attività. Puoi anche usarlo per contare le righe in un file. Puoi scrivere uno script Bash personalizzato, che utilizza il comando wc per stampare il conteggio delle righe di un file:

#!/bin/bash
filename=$1
linecount=$(wc -l < "$filename")
echo "The file $filename has $linecount lines."

Questo script Bash utilizza il comando wc con il flag -l. Il comando wc ottiene il conteggio delle righe e lo memorizza nella variabile linecount. Alla fine dello script, viene inviato un messaggio al terminale, che visualizza il nome del file e il numero di righe corrispondente.

Per utilizzare lo script sopra, salvalo semplicemente come file con estensione ".sh" (count_lines.sh) e rendilo eseguibile utilizzando chmod:

chmod +x count_lines.sh

Ora esegui lo script utilizzando la notazione ./ seguita dal nome dello script:

./count_lines.sh example.txt

Otterrai il conteggio totale delle righe del file example.txt sull'output standard.

Conosci il tuo file system Linux dentro e fuori

Su Linux, è importante conoscere i file sul tuo sistema. Come contare le linee, anche contare i file Linux in una directory aiuta a gestire il sistema in modo più efficiente. Questo ti aiuterà a sapere quali file occupano più spazio, cosa eliminare e cosa conservare.

Anche conoscere la struttura dei file Linux è importante. Considera il pilastro principale dei file Linux: gli inode. Se li esaurisci nel tuo sistema, avrai una giornata difficile. Questi sono in numero molto limitato e memorizzano dati cruciali nel tuo sistema.

Conoscerli non solo ti aiuterà a gestire ed eseguire le attività, ma faciliterà anche le attività di manutenzione del sistema.

Articoli correlati: